На тот момент существующими средствами этого сделать не удавалось. Были (и есть), конечно, различные приложения – ScanDisk, Norton Disk Doctor и т.п. позволявшие «восстановить» испорченный файл. На самом деле они его не восстанавливали, они просто помечали битые сектора как ‘Bad block’, чтобы на их место больше ничего нельзя было записать, а фрагмент файла находившийся в них, записывали в другую часть дискеты. Записывали как правило нули, т.к. физически что-либо прочитать было невозможно. Впоследствии файл копировался стандартными средствами без сообщений об ошибках.
Возникало также вполне закономерное требование иметь возможность из двух и более испорченных в разных местах файлов собрать один все-таки нормальный. А подобных функций я сколько не искал, нигде не нашел.
Тогда я и взялся за разработку FileCopier’а. Программа последовательно копирует файл и, как только встречается испорченный фрагмент, она предлагает или пропустить его, т.е. записать в конечный файл ровно такое же количество нулевых байтов, сколько прочитать не удается, либо считать из другой копии только этот фрагмент и записать его в конечный файл. Таким образом получался файл полностью идентичный нормальному оригиналу.
Поскольку используются стандартные функции чтения/записи Windows, FileCopier может копировать файлы с любых носителей воспринимаемых проводником MS Windows.
Несколько позже после многократных публикаций программы в софтверных интернет-каталогах, пользователи подсказали мне совершенно неожиданное применение программы – копировать фильмы с царапанных компакт-дисков. Для фильмов потеря нескольких байт, даже килобайт, не особо заметна. Только проблема была в том, что аппаратно CD-ROM начинал тормозить и очень долго определять что он наткнулся на нечитаемое место компакт-диска. Эта проблема остается и по сей день и в Skopin FileCopier’е я ее не пытаюсь исправить. Это минус программы и как его убрать, пока не знаю.
Но если Вам хватило терпения и Вы скопировали-таки файл с поврежденного диска и, во что бы то ни стало, хотите иметь его оригинальную, полностью цельную копию, то есть решение. Особенно, если у кого-то есть хорошая копия. Логично, что можно вытащить из его копии ровно такое количество байт, сколько у Вас было заменено при копировании нулями и вписать их на место нулей в Вашу копию.
Skopin FileCopier позволяет это сделать при наличии дополнительной утилиты FileCOMPILER (в дальнейшем планирую для удобства объединить их в одно приложение). Она также занимает чрезвычайно мало места и ее можно скачать как с сайта проекта, так и в составе FULL версии Skopin FileCopier. Но поскольку это процедура технически непростая, то и чтобы понять как это делается нужно отдельное описание.
В следующих статьях этого блога я выложу подробное описание сего процесса.
Комментариев нет:
Отправить комментарий