Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#:我可以使用以下方法从硬盘永久删除文件吗?_C#_.net_File Io_Io - Fatal编程技术网

C#:我可以使用以下方法从硬盘永久删除文件吗?

C#:我可以使用以下方法从硬盘永久删除文件吗?,c#,.net,file-io,io,C#,.net,File Io,Io,我不会发布代码或任何东西,因为我还没有开始这个项目。但理论上,我是否可以使用此方法安全地删除文件: 使用System.IO.File写入所有0个字节,并替换文件中当前的字节(如果需要,甚至可以随机化字节) 可能会随机化文件属性以增加安全性 然后最后删除该文件 现在,我明白了,即使使用这种方法,文件在删除后在技术上仍然会存储在内存中,但如果我覆盖文件中的所有字节并随机化属性,文件仍然可以恢复吗?基本上,您想要做的是专业橡皮擦工具(例如)也可以做的事情。然而,我说“专业”是因为永久删除一个文件并不是

我不会发布代码或任何东西,因为我还没有开始这个项目。但理论上,我是否可以使用此方法安全地删除文件:

使用
System.IO.File
写入所有0个字节,并替换文件中当前的字节(如果需要,甚至可以随机化字节)

可能会随机化文件属性以增加安全性

然后最后删除该文件


现在,我明白了,即使使用这种方法,文件在删除后在技术上仍然会存储在内存中,但如果我覆盖文件中的所有字节并随机化属性,文件仍然可以恢复吗?

基本上,您想要做的是专业橡皮擦工具(例如)也可以做的事情。然而,我说“专业”是因为永久删除一个文件并不是那么容易,这些程序通常通过执行你提到的算法给定的次数来完成,通常最多10次


然而,总是有机会恢复文件,国家安全机构整天都在处理这些问题。因此,没有100%安全的方法,但可以肯定的是,经过几次迭代后,恢复文件会变得非常困难——即使他们可能恢复某些东西,也不能保证是整个文件,而只是一堆无序的字节。

我想,这取决于文件系统是否将覆盖写入磁盘上的同一位置。不知道。看起来更像是某种硬盘清理工具的事情。不过,我不知道打开一个文件进行覆盖怎么能将其内容存储在内存中。您需要专门为此读取文件流。本文可以帮助您: