Какой инструмент / утилиту я могу использовать для вывода списка удаленных файлов в Windows? - PullRequest
0 голосов
/ 14 августа 2011

Я делаю Java-приложение для настольного компьютера, которое будет «Shred» или «Swipe» или «More Permanently Delete Diles». Я могу сделать смахивание, но сначала я должен найти и получить доступ к удаленным файлам.

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

1 Ответ

8 голосов
/ 14 августа 2011

Как вывести список файлов, помеченных как удаленные процессом удаления Windows, с использованием Java или командной строки?

Короткий ответ: вы не можете сделать это на Java.

Более длинный ответ заключается в том, что единственный способ, которым вы могли бы сделать это в Java, - написать много собственного кода:

  • доступ к диску на уровне дискового блока,
  • декодирует данные файловой системы, структурированные для поиска удаленных файлов и осиротевших блоков, которые когда-то были частью удаленных файлов, и
  • Обнулить соответствующие блоки.

... пока ...

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

Выполнение всего этого действительно сложно , если вы реализуете все в C / C ++, и еще сложнее , если вы делаете это из Java. И если вы облажаетесь, вы можете испортить файловую систему ПК.


Лучше было бы найти какой-нибудь существующий инструмент / утилиту, который выполняет эту работу, и использовать Runtime.exec(...) или эквивалентный для запуска его как отдельного процесса.

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

...