亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#實現徹底刪除文件的方法

2020-01-24 02:16:14
字體:
來源:轉載
供稿:網友

本文實例講述了C#實現徹底刪除文件的方法。分享給大家供大家參考。具體實現方法如下:

經常用360的文件粉碎,刪除隱私文件貌似還不錯的。不過C#也可以實現徹底刪除文件。試了下用360文件恢復恢復不了源文件了。

主要代碼如下:

復制代碼 代碼如下:
public class AbsoluteFile 

       public event EventHandler FinishDeleteFileEvent = null; 
       public event EventHandler FinishDeleteFolderEvent = null; 
       public event EventHandler DeleteErrorEvent = null; 
       public string ErrorString = string.Empty; 
       public void DoAbsoluteDeleteFile(object filePath) 
       { 
           try 
           { 
               string filename = filePath.ToString(); 
               if (string.IsNullOrEmpty(filename)) 
               { 
                   return; 
               } 
               if (File.Exists(filename)) 
               { 
                   File.SetAttributes(filename, FileAttributes.Normal); 
                   double sectors = Math.Ceiling(new FileInfo(filename).Length / 512.0); 
                   byte[] dummyBuffer = new byte[512]; 
                   RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); 
                   FileStream inputStream = new FileStream(filename, FileMode.Open); 
                   inputStream.Position = 0; 
                   for (int sectorsWritten = 0; sectorsWritten < sectors; sectorsWritten++) 
                   { 
                       rng.GetBytes(dummyBuffer); 
                       inputStream.Write(dummyBuffer, 0, dummyBuffer.Length); 
                       sectorsWritten++; 
                   } 
                   inputStream.SetLength(0); 
                   inputStream.Close(); 
                   DateTime dt = new DateTime(2049, 1, 1, 0, 0, 0); 
                   File.SetCreationTime(filename, dt); 
                   File.SetLastAccessTime(filename, dt); 
                   File.SetLastWriteTime(filename, dt); 
                   File.Delete(filename); 
                   WipeDone(); 
               } 
           } 
           catch (Exception e) 
           { 
               WipeError(e); 
           } 
       } 
       public void DoDeleteFolder(object folder) 
       { 
           string folderPath = folder.ToString(); 
           if (string.IsNullOrEmpty(folderPath)) 
           { 
               return; 
           } 
           DirectoryInfo direct = new DirectoryInfo(folderPath); 
           FileSystemInfo[] filesystem = direct.GetFileSystemInfos(); 
           if (filesystem == null || filesystem.Length == 0) 
           { 
               direct.Delete(); 
           } 
           else 
           { 
               foreach (FileSystemInfo fileItem in filesystem) 
               { 
                   if (fileItem is FileInfo) 
                   { 
                       this.DoAbsoluteDeleteFile(fileItem.FullName); 
                   } 
                   else 
                   { 
                       DoDeleteFolder(fileItem.FullName); 
                   } 
               } 
           } 
           if (this.FinishDeleteFolderEvent != null) 
           { 
               this.FinishDeleteFolderEvent(this, null); 
           } 
       } 
       private void WipeError(Exception e) 
       { 
           if (DeleteErrorEvent != null) 
           { 
               ErrorString = e.Message; 
               DeleteErrorEvent(this, null); 
           } 
       } 
       private void WipeDone() 
       { 
           if (FinishDeleteFileEvent != null) 
           { 
               FinishDeleteFileEvent(this, null); 
           } 
       } 
}

順便寫了個簡單的界面:

后臺代碼如下所示:

復制代碼 代碼如下:
public partial class Form1 : Form 

       private Thread dfileThread = null; 
       private string fileObjectPath = string.Empty; 
       private bool isFile = true; 
       public delegate void DefaulEventDelegate(object sender, EventArgs e); 
       public Form1() 
       { 
           InitializeComponent(); 
       } 
       private void btnSelectFile_Click(object sender, EventArgs e) 
       { 
           isFile = true; 
          this.openFileDialog1 = new OpenFileDialog(); 
          openFileDialog1.Multiselect = true; 
          openFileDialog1.Title = "請選擇文件"; 
          openFileDialog1.Filter = "所有文件(*.*)|*.*"; 
          if (openFileDialog1.ShowDialog() == DialogResult.OK) 
           { 
              this.txtFilePath.Text = openFileDialog1.FileName; 
           } 
          fileObjectPath = this.txtFilePath.Text.Trim(); 
       } 
       private void btnSelectFolder_Click(object sender, EventArgs e) 
       { 
           isFile = false; 
           this.folderBrowserDialog1  = new FolderBrowserDialog(); 
           folderBrowserDialog1.Description = "請選擇文件路徑"; 
           if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) 
           { 
               this.txtFolder.Text = folderBrowserDialog1.SelectedPath; 
           } 
           fileObjectPath = this.txtFolder.Text.Trim(); 
       } 
       private void btnAbsoluteDelete_Click(object sender, EventArgs e) 
       { 
           this.lblHint.Visible = true; 
           if(string.IsNullOrEmpty(fileObjectPath)) 
           { 
               MessageBox.Show("請選擇要粉碎的文件和文件夾!"); 
               return; 
           } 
           AbsoluteFile dfile = new AbsoluteFile(); 
           dfile.DeleteErrorEvent += new EventHandler(Dfile_DeleteErrorEvent); 
           if (isFile) 
           { 
               dfile.FinishDeleteFileEvent += new EventHandler(Dfile_FinishDeleteFileEvent); 
               dfileThread = new Thread(new ParameterizedThreadStart(dfile.DoAbsoluteDeleteFile)); 
               dfileThread.IsBackground = true; 
               dfileThread.Start(fileObjectPath); 
           } 
           else 
           { 
               dfile.FinishDeleteFolderEvent += new EventHandler(Dfile_FinishDeleteFolderEvent); 
               dfileThread = new Thread(new ParameterizedThreadStart(dfile.DoDeleteFolder)); 
               dfileThread.IsBackground = true; 
               dfileThread.Start(fileObjectPath); 
           } 
           this.lblHint.Text = @"正在刪除..."; 
       } 
       void Dfile_DeleteErrorEvent(object sender, EventArgs e) 
       { 
           if (!this.InvokeRequired) 
           { 
               MessageBox.Show((sender as AbsoluteFile).ErrorString); 
           } 
           else 
           { 
               this.BeginInvoke(new DefaulEventDelegate(Dfile_DeleteErrorEvent), new object[] { sender, e }); 
           } 
       } 
       void Dfile_FinishDeleteFolderEvent(object sender, EventArgs e) 
       { 
           if (!this.InvokeRequired) 
           { 
               this.lblHint.Visible = false; 
               MessageBox.Show("刪除完畢!"); 
           } 
           else 
           { 
               this.BeginInvoke(new DefaulEventDelegate(Dfile_FinishDeleteFolderEvent),new object[] { sender,e }); 
           } 
       } 
       void Dfile_FinishDeleteFileEvent(object sender, EventArgs e) 
       { 
           if (!this.InvokeRequired) 
           { 
               this.lblHint.Visible = false; 
               MessageBox.Show("刪除完畢!"); 
           } 
           else 
           { 
               this.BeginInvoke(new DefaulEventDelegate(Dfile_FinishDeleteFileEvent), new object[] { sender, e }); 
           } 
       } 
}

完整實例代碼點擊此處本站下載

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品中文| 成人网页在线免费观看| 日韩精品在线观看一区二区| 日韩av在线高清| 欧美一区二区.| 国色天香2019中文字幕在线观看| 精品少妇v888av| 亚州欧美日韩中文视频| 欧美性猛交xxxx偷拍洗澡| 欧美日韩亚洲精品一区二区三区| 欧美激情一级二级| 性欧美暴力猛交69hd| 国产精品第一区| 亚洲bt天天射| 亚洲自拍小视频| 日韩精品在线观看一区| 欧美劲爆第一页| 亚洲欧美资源在线| 国产精品一区二区久久精品| 欧美又大又硬又粗bbbbb| 久久久久国产精品免费网站| 久久偷看各类女兵18女厕嘘嘘| 中日韩美女免费视频网址在线观看| 亚洲一区二区国产| 国内精品视频一区| 成人精品一区二区三区电影黑人| 欧美黄色片视频| 国产精品久久视频| 91精品视频免费| 91干在线观看| 久久这里有精品视频| 亚洲色图35p| 亚洲tv在线观看| 亚洲精品久久久一区二区三区| 欧美乱大交做爰xxxⅹ性3| 国产精品91在线| 国产欧美精品va在线观看| 欧美精品videosex性欧美| 亚洲网在线观看| 欧美极品第一页| 国产精品高潮呻吟久久av野狼| 萌白酱国产一区二区| 成人免费大片黄在线播放| 亚洲第一区中文字幕| 国产精品久久久久免费a∨| 久久99精品久久久久久青青91| 亚洲视频在线免费看| 国产91精品在线播放| 韩国精品美女www爽爽爽视频| 国产三级精品网站| 亚洲精品720p| 国产精品黄页免费高清在线观看| 国产不卡一区二区在线播放| 欧美wwwwww| 日韩精品久久久久久久玫瑰园| 中文字幕亚洲无线码在线一区| 欧美一区二区三区免费视| 中文字幕日韩精品在线观看| 九九久久久久久久久激情| 亚洲欧洲视频在线| 久久久成人的性感天堂| 国产欧美在线观看| 久久久久久久一区二区| 亚洲影院高清在线| 国产69精品久久久久99| 欧美精品一区二区免费| 欧美在线观看日本一区| 欧美午夜丰满在线18影院| 91美女片黄在线观看游戏| 欧美大片在线影院| 琪琪第一精品导航| 日韩精品欧美激情| 成人黄色片网站| 国语自产精品视频在线看抢先版图片| 日韩欧美在线免费| 色综合久久天天综线观看| 在线视频一区二区| 美女黄色丝袜一区| 亚洲成人激情图| 久久精品中文字幕免费mv| 亚洲第一精品电影| 一区二区在线视频播放| 国产精品久久久久秋霞鲁丝| 7777精品久久久久久| 日韩在线播放视频| 国外日韩电影在线观看| 精品久久久久久久大神国产| 欧美激情手机在线视频| 国产主播在线一区| 欧美综合激情网| 日韩大片在线观看视频| 欧美多人乱p欧美4p久久| 日韩视频免费在线| 亚洲国产成人精品一区二区| 美女啪啪无遮挡免费久久网站| 日韩中文字幕欧美| 欧美日韩亚洲精品内裤| 欧美日韩中文字幕在线视频| 欧美日韩国产精品一区二区不卡中文| 欧美插天视频在线播放| 成人免费看片视频| 亚洲国产成人av在线| 国产午夜精品视频免费不卡69堂| 亚洲美女动态图120秒| 国产精品九九久久久久久久| 午夜精品一区二区三区在线播放| 亚洲欧美国产高清va在线播| 久久91亚洲精品中文字幕奶水| 日韩电影中文字幕av| 92国产精品视频| 欧美精品videossex88| 国产精品视频久久久| 在线观看日韩视频| 欧美午夜精品久久久久久浪潮| 成人欧美一区二区三区黑人| 国产欧美日韩最新| 福利视频导航一区| 亚洲国产小视频在线观看| 青青久久av北条麻妃黑人| 久久久久久久久电影| 色婷婷av一区二区三区在线观看| 91精品国产高清久久久久久| 久久精品国产一区二区三区| 成人福利网站在线观看| 国产精品久久久久aaaa九色| 欧美最猛性xxxxx(亚洲精品)| 欧美日韩精品二区| 欧美大尺度在线观看| 国产精品免费久久久| 91国产高清在线| 久久久999国产| 欧美午夜精品久久久久久浪潮| 欧美性在线观看| 日本精品视频在线播放| 亚洲人免费视频| 性金发美女69hd大尺寸| 欧美第一黄网免费网站| 久久久久久国产精品| 欧美激情第1页| 久久亚洲精品一区二区| 一本久久综合亚洲鲁鲁| 亚洲天堂男人天堂女人天堂| 国产精自产拍久久久久久蜜| 国产成人avxxxxx在线看| 狠狠色香婷婷久久亚洲精品| 国产精品视频不卡| 中文亚洲视频在线| 欧美午夜精品在线| 精品自在线视频| 久久精品国产亚洲| 韩国三级日本三级少妇99| 亚洲高清一区二| 国产精品久久久久久五月尺| 国产成人在线视频| 日韩在线免费观看视频| 亚洲va欧美va国产综合久久| 色综合久久中文字幕综合网小说| 91在线无精精品一区二区| 国产精品成人一区| 久久免费在线观看| 亚洲人成电影在线观看天堂色| 亚洲有声小说3d| 国产精品一区二区久久国产| 欧美精品videos|