冰楓論壇

標題: [C#] 強力刪除檔案 [打印本頁]

作者: whitefox    時間: 2023-7-9 00:11
標題: [C#] 強力刪除檔案
內建檔案刪除方法 File.Delete 是將該檔案空間標記可寫入
若沒有後續資料寫入,該儲存位置的資料是可以讀回復原
這邊使用直接將儲存檔案的磁碟空間來回寫入隨機假資料
經過這樣的操作就很難復原檔案,實際上真地『刪除』了
  1. public static void WipeFile(string FilePath, int TimesToWrite = 20)
  2. {
  3.     try
  4.     {
  5.         if (File.Exists(FilePath))
  6.         {
  7.             File.SetAttributes(FilePath, FileAttributes.Normal);
  8.             double sectors = Math.Ceiling(new FileInfo(FilePath).Length / 512.0);
  9.             byte[] dummyBuffer = new byte[512];
  10.             RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
  11.             FileStream inputStream = new FileStream(FilePath, FileMode.Open, FileAccess.Write, FileShare.ReadWrite);

  12.             for (int currentPass = 0; currentPass < TimesToWrite; currentPass++)
  13.             {
  14.                 inputStream.Position = 0;
  15.                 for (int sectorsWritten = 0; sectorsWritten < sectors; sectorsWritten++)
  16.                 {
  17.                     rng.GetBytes(dummyBuffer);
  18.                     inputStream.Write(dummyBuffer, 0, dummyBuffer.Length);
  19.                 }
  20.             }

  21.             inputStream.SetLength(0);
  22.             inputStream.Close();
  23.             DateTime dt = new DateTime(2037, 1, 1, 0, 0, 0);
  24.             File.SetCreationTime(FilePath, dt);
  25.             File.SetLastAccessTime(FilePath, dt);
  26.             File.SetLastWriteTime(FilePath, dt);

  27.             File.Delete(FilePath);
  28.         }
  29.     }
  30.     catch (Exception) { }
  31. }
複製代碼

作者: inmoptg    時間: 2023-10-2 13:36
實用,感謝大大的分享 !




歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓