如何在Java中安全删除文件


问题内容

如何安全删除Java中的文件?我在javafaq.nu尝试了代码,但问题是,由于此错误,一旦映射了文件,您将无法在Windows上实际删除该文件。

然后,我尝试仅在Windows上使用sysinternals sdelete,但是第一次使用时必须单击使用协议,这是我想避免的。


问题答案:

在像NTFS这样的日志文件系统上,实际上如果不擦除驱动器上的所有可用空间,就无法安全地擦除单个文件。问题是新的块(您可能已经用随机数据覆盖了这些块)不能保证与旧块在磁盘上位于同一位置。

诸如sdelete之类的实用程序可能对您有用,但您可以将其替换为对阻止这种防御方法无能为力的可执行文件。

为了确保数据安全,唯一真正的解决方案是完全加密驱动器。