Как определить, что файл через торрент полностью загружен?

Имеется программа на C++, которая по размеру файлов проверяет их целостность и если она нарушена, то загружает файлы через торрент. Если не прерывать загрузку, то всё работает нормально. Но если же её прервать, то в результате на диске окажутся странные файлы, которые в свойствах имеют полноценный размер, но "на диске" только та часть, которая успела загрузиться. Файлы загружены не до конца, программа не работает, но при этом проверка выдаёт, что все файлы в порядке, ибо boost::filesystem::file_size(file_path) выдаёт нормальный размер. Как узнать реальный размер?

U77s2Mogls4.jpg

Так выглядит один из файлов, который создан торрентом и имеет нормальный размер, но "на диске" - 0.
NA39zEyoqcc.jpg
  • Вопрос задан
  • 6061 просмотр
Решения вопроса 1
abyrkov
@abyrkov
JavaScripter
Вы столкнулись с разреженными (sparsed) файлами. Вот как определить их реальный размер
https://msdn.microsoft.com/ru-ru/library/windows/d...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
edinorog
@edinorog Куратор тега Windows
Троллей не кормить!
перехешировать. не?)
Ответ написан
GavriKos
@GavriKos
которая по размеру файлов проверяет их целостность

Целостность проверяют контрольной суммой. Размер файла ни в коем случае не означает, что в файле есть все данные.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы