2016-07-19 92 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'會是一個更適合這個方法的名字,因爲這實際上是一個簡單的方法來粉碎它。 –