История изменений
Исправление MKuznetsov, (текущая версия) :
Нужно устранить копии.
включая содержимое ? и файлы большие и много ??
подкаталоги+файлы сортировать по именам (если имена учитываются, иначе по размерам),считать самую быструю и короткую контрольную сумму какая только найдётся. crc32 по всему включая мета-данные (имя+размер+даты_если_важны+exif_для_картинок), содержимое полностью только для коротких файлов, для больших - первые N страниц+последние K
алг.crc можно и не выбирать - действительно crc32 как самый стандартный и повсеместно имеющийся. Арифметика рассчётов не будет тонким местом. Вот IO - да. Считать лучше в несколько потоков и возможно даже заходов (а вдруг какой файл поменятся пока считаете остальные ?)
потом уже, при совпадении CRC, уже делать окончательное и точное сравнение для выявления дубликатов.
Исходная версия MKuznetsov, :
Нужно устранить копии.
включая содержимое ? и файлы большие и много ??
подкаталоги+файлы сортировать по именам (если имена учитываются, иначе по размерам),считать самую быструю и короткую контрольную сумму какая только найдётся. crc32 по всему включая мета-данные (имя+размер+даты_если_важны+exif_для_картинок), содержимое полностью только для коротких файлов, для больших - первые N страниц+последние K
алг.crc можно и не выбирать - действительно crc32 как самый стандартный и повсеместно имеющийся. Вот считать лучше в несколько потоков и возможно даже заходов (а вдруг какой файл поменятся пока считаете остальные ?)
потом уже, при совпадении CRC, уже делать окончательное и точное сравнение для выявления дубликатов.