在.NET中粉碎文件

是否有可以在托管代码中使用的SDK来安全地粉碎文件?

编辑: 这是我在谷歌找到的唯一可以帮助我的链接

编辑:SDK或某种基于COM的组件。

来自codeproject的代码可能是一个很好的起点。

橡皮擦已存在多年,您可以使用System.Diagnostics.Process调用它,或者至少在那里查看算法。

技术在过去几年发生了变化,所以当我碰巧看到这个答案时(为什么不能再接受答案?)我想为其他有类似问题的人提供更新。

请注意,碎化非常依赖于文件系统和媒体。 尝试在基于日志的文件系统或存储在智能(写入调平)闪存上的文件系统上“粉碎”文件并不会让你走得太远。 您必须至少编写足够的数据来完成填充设备,以避免旧数据被覆盖一次。

更有可能你必须编写几个较小的文件,当你获得FS满时,删除一个,然后继续写一个新文件,以确保所有保留空间也被覆盖。 那么你可能会相当安全。 大概。

我之所以说可能是因为存储介质/ FS可能会判断一个块出现故障(或相对使用过多)并将其映射为替代磁盘的其他部分。 这当然是一个块,所以任何更大的文件都不可能被重建。

看看CodePlex上的Windows.WinAny.Helper 。 它具有SecureDelete扩展,允许您使用不同的算法(如Gutmann,DoD-7,DoD-3,Random或Quick)粉碎文件。