Russian Qt Forum
Апрель 24, 2024, 06:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как средствами QT получить контрольную сумму файла/папки/диска?  (Прочитано 6695 раз)
Павелъ
Гость
« : Апрель 26, 2017, 21:18 »

Доброго времени суток.

Дана задача написать программу, которая будет возвращать контрольную сумму файла/папки/диска.
Для получения контрольной суммы файла в Qt вроде есть стандартные средства. С этим более-менее понятно.

А как быть с группой файлов, контрольную сумму которой нужно получить?

Прочитал, что можно поместить в компрессор/архив папку, а архив будет хранить контрольную сумму, которую можно из архива получить.

Но как тогда это сделать? Может, в Qt есть какие-нибудь средства, позволяющие получить контрольную сумму из архива?
Записан
Swa
Самовар
**
Offline Offline

Сообщений: 170


Просмотр профиля
« Ответ #1 : Апрель 26, 2017, 21:44 »

Можно получить контрольную сумму файла тк он является непрерывным набором байт, но невозможно получить контрольную сумму директории или диска.
Какую конкретно задачу вы пытаетесь решить?
Записан
Павелъ
Гость
« Ответ #2 : Апрель 26, 2017, 21:51 »

есть к примеру на cd файлы, мне нужно получить контрольную сумму этого cd или папки, в которой хранятся эти файлы. Чтобы убедиться, что никто не изменил или не удалил файл.

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

Тогда, какие есть средства в Qt для работы с архивами?
Записан
Swa
Самовар
**
Offline Offline

Сообщений: 170


Просмотр профиля
« Ответ #3 : Апрель 26, 2017, 22:04 »

Попробуйте QCryptographicHash http://doc.qt.io/qt-5/qcryptographichash.html. Получите список всех файлов в директории, потом от каждого считайте MD5 хеш, затем сложите все хеши в один массив и посчитайте хеш от него. Перебирайте файлы всегда в одинаковом порядке, например по алфавиту.
Записан
qate
Супер
******
Offline Offline

Сообщений: 1175


Просмотр профиля
« Ответ #4 : Апрель 27, 2017, 09:04 »

есть хорошая свободная консольная программа md5sum, которая считает и проверяет суммы файлов и каталогов (для венды тоже есть)
необходимо посчитать суммы, записать в файл, а затем сравнить
все что нужно от qt - вызвать её и выдать результат на экран
не нужно ничего писать самому (отлаживать и ловить баги, и будет медленнее), все уже сделано
также такой вариант будет работать без qt, бывает и так нужно
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Апрель 27, 2017, 09:12 »

А может стоит умерить аппетит и удовлетвориться проверкой длины + даты модификации файла
Записан
qate
Супер
******
Offline Offline

Сообщений: 1175


Просмотр профиля
« Ответ #6 : Апрель 27, 2017, 11:31 »

А может стоит умерить аппетит и удовлетвориться проверкой длины + даты модификации файла

если говорить о CD то проверять md5 это еще и проверять чтение, что актуально при царапинах, например
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.133 секунд. Запросов: 22.