Показать сообщение отдельно
Старый 06.02.2013, 18:40   #13
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Как искать идентичные файлы?

Объясни пожалуйста что где должно хранится?
в инте (ключе, тип может быть другим) - хэш файлов.

в списке строк - пути к файлам с одинаковым хэшем

алгоритм:
1) проходишься по всем файлам в выбранной папке рекурсивно.
2) добавляешь путь к списку файлов с таким хэшем:
candidates[GetFileHash(filename)].push_back(filename);
3) после составления мапы проходишься по файлам в списке:
for(auto ci = candidates.begin(), ei = candidates.end();ci!=ei;++ci)
{
auto files = ci->second;
if(files.size() > 1)
{
for(auto fi = files.begin(), efi = files.end();fi!=efi;++fi)
...побитовое сравнение
}
}
}
4) если побитово сравнились - запихиваешь в какой-то свой список одинаковых файлов.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ІГРОГРАЙКО (06.02.2013)