冰楓論壇

 找回密碼
 立即註冊
搜索
查看: 4089|回覆: 1
打印 上一主題 下一主題

[心得] [C#] 強力刪除檔案

[複製鏈接]

855

主題

0

好友

869

積分

高級贊助會員

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

UID
390967
帖子
1660
主題
855
精華
0
積分
869
楓幣
12244
威望
409
存款
10100
贊助金額
1800
推廣
0
GP
2803
閱讀權限
150
在線時間
197 小時
註冊時間
2023-5-18
最後登入
2024-12-22

2023年紀念勳章 太陽勳章 神手勳章 高級客戶 VIP會員 私服達人 懶人勳章 幼兒勳章 音樂勳章 屁孩勳章 貢獻王 性別(女) 性別(男) 積分勳章 發帖達人 2023端午節紀念勳章 富豪勳章 富可敵國 2023中秋節紀念勳章 解說達人 論壇粉絲 2023聖誕節紀念勳章 2024年紀念勳章 2024端午節紀念勳章 2024中秋節紀念勳章 2024聖誕節紀念勳章

跳轉到指定樓層
1
發表於 2023-7-9 00:11:13 |只看該作者 |倒序瀏覽
內建檔案刪除方法 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. }
複製代碼
收藏收藏0 推0 噓0


把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分: 1鑰匙
複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$

0

主題

0

好友

0

積分

新手上路

Rank: 1

UID
406940
帖子
2
主題
0
精華
0
積分
0
楓幣
-9
威望
0
存款
0
贊助金額
0
推廣
0
GP
0
閱讀權限
10
性別
保密
在線時間
0 小時
註冊時間
2023-10-2
最後登入
2023-10-2
2
發表於 2023-10-2 13:36:18 |只看該作者
實用,感謝大大的分享 !
點評回覆

使用道具 舉報

高級模式
B Color Image Link Quote Code Smilies |上傳

廣告刊登意見回饋關於我們管群招募本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-12-22 13:18

回頂部