我尝试过搜索,但没有找到适合我查询的任何好的答案。
我想知道如何从 Windows 系统中完全删除文件,使其无法以任何方式恢复。
我知道互联网上有一些软件可以从系统中完全删除文件。我想为自己做一个小演示,想看看它是否真的从系统中删除/删除了。
例如:如果我使用 SHIFT + DELETE 删除文件,我知道普通用户无法恢复该文件。但是有一些恢复软件可以用来恢复该文件。所以,我只是想以某种方式删除该文件,以便恢复软件无法恢复特定文件。
谁能告诉我,这是怎么做到的?我真的很感激。如果有人可以分享一小段代码来实现这一点。这样我就能更好地理解它。
谢谢
此致
最佳答案
这是一个棘手的问题,不能用“一小段代码”来解决。
假设您有一个 super secret /令人尴尬/非法/任何您真正想要删除的文件。首先,它本来就应该被加密。只是说一下。
无论如何,文件的部分甚至整个文件可能会出现在很多地方。内存、页面文件、休眠文件、硬盘驱动器上的空白空间(例如通过碎片整理重新定位文件内容后)。你们有在线同步服务吗?备份? SSD 驱动器可以在每次写入时将文件分散到所有物理 block 位置?噢,亲爱的。
因此,要至少在本地系统上真正真正删除该文件,作为最低限度的措施,您必须这样做
- 通过您选择的 API 删除它(除非通过普通 UI 将其移至“垃圾桶”)
- 禁用并删除系统页面文件
- 删除休眠文件
- 用随机字节覆盖硬盘驱动器中所有所谓的空白空间
- 重新启动系统
- 重新实例化页面文件
但是:SSD 和某些硬盘驱动器具有备用容量 block ,当 block 产生错误时,它们可以用作备用容量 block 。如果您的文件碰巧位于这样一个失败的 block 中,它可能已被驱动器固件默默地重新定位,并且驱动器将永远不会通过可通过 Windows API 访问的方式再次写入该 block 。因此,如果您想真正确定您必须物理销毁该文件曾经写入的所有驱动器。
关于c# - 如何从Windows系统中彻底删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28798108/