Я разрабатываю мобильное приложение BlackBerry 10, используя IDE-компонент моментальных действий (нативный SDK).
В моем коде я хочу добавить функцию, которая должна проверять, поврежден файл или нет.
Как мне поступить?
Два метода, которые я могу придумать:
1) Если вы записываете файл, убедитесь, что у вас есть определенный набор байтов, который вы записываете в конце. При чтении файла перейдите в конец файла и проверьте, присутствуют ли эти байты. Если нет, файл не закончил запись и может считаться поврежденным. В качестве альтернативы этому можно записать размер байтов в начало файла и проверить, равен ли остальной размер файла тому числу, когда он будет считан обратно.
2) Если вы проверяете файл, который не изменяется, сохраните хэш содержимого файла и во время выполнения сгенерируйте хэш и сравните его с тем, который вы сохранили. Если они различаются, файл был изменен, и вы можете считать его поврежденным.
Что вы имеете в виду под коррупцией?
Если вы хотите увидеть, соответствует ли файл тому, что вы ожидаете, вы можете вычислить хеш файла, например: SHA-256
или какой-либо другой алгоритм хеширования, сохраните значения хеш-функции, а затем в своем приложении просто вычислите значения хеш-функции файлов, сравните их с ожидаемыми значениями, и, если они совпадают, скорее всего, искажения отсутствуют.
Вы можете посмотреть Вот.