Страницы

Поиск по вопросам

четверг, 12 декабря 2019 г.

Алгоритм поиска дубликатов файлов

#алгоритм #файловая_система


Меня интересуют алгоритмы поиска дубликатов файлов: среди множества каталогов нужно
найти и запомнить все файлы с одинаковым содержимым. В связи с большими объемами данных
для обработки требуется хороший алгоритм, советы и рекомендации насчет возможной оптимизации
его работы и т.п.

Я не прошу предоставить мне кусок готового кода или каким-либо иным способом полностью
реализованное задание, буду благодарен за любую полученную ценную информацию относительно
данного вопроса.
    


Ответы

Ответ 1



Вот решение в-лоб: Обходим все каталоги рекурсивно, сохраняем (path, filesize) в таблицу базы данных. Сортируем собранную таблицу по filesize, делаем выборку по всем записям где filesize неуникально. Для каждой пачки файлов с одинаковым filesize вычисляем хеш, проверяем на равенство. ??? PROFIT

Ответ 2



fdupes не смотрели? У него есть такой алгоритм и он вроде уже проверен временем

Ответ 3



Здесь какие-то люди уже 10 лет публикуют такое Windows приложение. Может Вам стоит связаться с ними.

Ответ 4



Hash для всего файла считать - плохая идея, если есть большие файлы Я сделал так: Для группы файлов с одинаковым размером делишь на группы по первого очередного байта в файле, для групп размером > 1 читаешь следующий байт и так по рекурсии Естественно, считывание байт должно быть буфферизованно, для каждого файла считываешь блоки в неск. килобайт, пототом оттуда выбираешь побайтно

Комментариев нет:

Отправить комментарий