2016-07-19 96 views
1

当你删除一个文件,填补其写入文件删除的文件无法被恢复

可以这样通过C#来完成零集群C#的手段?

p.s.没有完整格式

+3

那么你可以填补这全是零,然后将其删除... – BugFinder

+0

如果你想使文件更难恢复,你可以叫'SetLength(0)'一个'FileStream'这将使文件的大小为0字节,然后在删除它之前,还给它一个随机字符/字母的名称。 –

回答

0

这是关于BugFinder评论的一些代码。该方法用4KB零字节块覆盖文件数据。

public static class FileHelper 
    { 
     public static void EraseFile(string fileName) 
     { 
      var fileInfo = new FileInfo(fileName); 
      var zeroBuffer = new byte[4096]; 
      using (var file = new FileStream(fileName, FileMode.Open, FileAccess.Write)) 
      { 
       while (file.Position < fileInfo.Length) 
       { 
        var bytesToWrite = (int)Math.Min(4096, fileInfo.Length - file.Position); 
        file.Write(zeroBuffer, 0, bytesToWrite); 
       } 
       file.Flush(true); 
      } 
      File.Delete(fileName); 
     } 
    } 
+0

我认为'ShredFile'会是一个更适合这个方法的名字,因为这实际上是一个简单的方法来粉碎它。 –