Как я могу восстановить файл с помощью С#?

Я пытаюсь найти несколько потерянных изображений .jpg. Вот файл .bat для настройки упрощенной версии моей ситуации

md TestSetup
cd TestSetup
md a
cd a
echo "Can we find this later?" > a.abc
del a.abc
cd..
rd a

Какой код потребуется, чтобы снова открыть текстовый файл? На самом деле я ищу файлы .jpeg, которые обрабатывались аналогичным образом.

Подробнее: я пытаюсь восстановить файлы изображений из предыдущей резервной копии в одно касание, где каталоги и файлы были удалены, и все было сохранено в резервной копии с односимвольным именем, и каждый файл имеет одно и то же трехбуквенное расширение. Есть текущая резервная копия, но им нужно просмотреть предыдущие удаленные (или хотя бы файлы .jpg).

Вот как я пытался подойти к этому: удаленные записи">код C#


person Fred    schedule 29.08.2009    source источник
comment
Когда вы запускаете свой bat-файл, удаленные файлы попадают в корзину?   -  person MusiGenesis    schedule 30.08.2009
comment
Обязательно ли писать это приложение самостоятельно? Существуют бесплатные утилиты для восстановления удаленных файлов, которые делают именно то, что вам нужно.   -  person Paul Sasik    schedule 30.08.2009
comment
MusiGenesis: Нет, когда пакетный файл удаляет его таким образом, он делает то, что упоминает Мэтью, заменяя первый символ имени файла в записи каталога на 00h.   -  person Fred    schedule 30.08.2009
comment
psasik: Я хотел бы найти дешевую или бесплатную утилиту, которая бы это делала. Хотя я отказываюсь платить за кривое ПО, особенно когда не знаю, будет ли оно работать. Однобуквенный каталог и имена файлов, а также измененные расширения файлов делают это намного сложнее, чем должно быть.   -  person Fred    schedule 30.08.2009


Ответы (1)


Насколько мне известно, большинство инструментов для восстановления файлов фактически считывают формат низкоуровневой файловой системы на диске и пытаются собрать воедино удаленные файлы. Это работает, потому что, по крайней мере, в FAT удаленный файл все еще находится в секторе, указывающем каталог (только с другим первым символом, чтобы идентифицировать его как «удаленный»). Новые файлы могут перезаписать эти удаленные записи и, следовательно, сделать файл невосстановимым. Это просто немного теории.

Есть текущая резервная копия, но им нужно просмотреть предыдущие удаленные (или хотя бы файлы .jpg).

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

person Matthew Iselin    schedule 29.08.2009
comment
Он находится на диске FAT32, и я зашел в него с помощью шестнадцатеричного редактора и убедился, что ряд удаленных каталогов и файлов все еще присутствует. Имея несколько сотен однобуквенных (удаленных) записей каталога, я полагаю, что мне придется повторять восстановление каждой из них, а затем проверять каждую удаленную запись каталога и файла в каждой и проверять первые 4 байта каждого файла, чтобы увидеть, если это действительный .jpg. - person Fred; 30.08.2009
comment
Верно, и именно этот утомительный процесс делает за вас большинство программ для восстановления файлов. Я настоятельно рекомендую написать кодовое решение (простой драйвер FAT32 можно сделать за пару часов, если вы еще не знаете), так как делать это вручную с помощью шестнадцатеричного редактора может быть гораздо более болезненным. - person Matthew Iselin; 31.08.2009