我可以使用什么工具/实用程序列出Windows上已删除的文件?

时间:2011-08-13 23:09:31

标签: java windows file utilities

我正在制作一个将要“Shred”或“Swipe”或“More Permanently Delete Diles”的Java桌面应用程序。我可以刷卡但首先我必须找到并访问已删除的文件。

我是否可以使用某些工具或实用程序来访问已删除的文件?我可以将它们恢复到临时位置然后切碎它们。或者有没有办法用Java或命令行来完成这个?

1 个答案:

答案 0 :(得分:8)

  

如何使用Java或命令行列出Windows删除过程标记为已删除的文件?

简短的回答是你不能用Java做到这一点。

更长的答案是,你能用Java完成这个任务的唯一方法是编写很多本机代码:

  • 以磁盘块级别访问磁盘
  • 解码构造的文件系统数据,以找到曾经是已删除文件一部分的已删除文件和孤立块,
  • 将相关区块归零。

......而......

  • 确保未将块重新分配给另一个(未删除的)文件,并
  • 考虑可能正在创建,修改和删除文件的其他正在运行的进程。

如果要在C / C ++中实现所有内容,那么真的很难,而如果你是用Java实现的话,甚至更难。如果搞砸了,你就可以把PC的文件系统丢弃了。


更好的想法是找到一些现有的工具/实用工具来完成工作,并使用Runtime.exec(...)或等效工具将其作为一个单独的流程运行。

(我会留给其他人建议可能的工具/实用程序.sysinternals sdelete工具似乎不会处理已经删除的文件。)