閱讀417 返回首頁    go iPhone_iPad_Mac_apple


批量刪除文件夾下包含指定字段的文件

using System; using System.IO; using System.Text.RegularExpressions; class App { static void Main() { Console.WriteLine("##########################【程序使用說明】############################"); Console.WriteLine("--目 的:本程序用來刪除指定文件夾下包含指定字段的文件用--------------"); Console.WriteLine("--第一步:選擇要進行處理的文件夾路徑(提示:通過左上角進行粘貼)---------"); Console.WriteLine("--第二步:確認是否包含子文件夾文件------------------------------------"); Console.WriteLine("--第三步:輸入要文件名匹配的字符串(如果匹配,則該文件將會被刪除)-------"); Console.WriteLine("--第四步:確認執行刪除操作,下麵開始運行程序---------------------------"); Console.WriteLine("######################################################################"); Console.WriteLine("請輸入目錄名稱:"); string strDirectoryName=Console.ReadLine(); DirectoryInfo myDI=new DirectoryInfo(strDirectoryName); //刪除文件名包含指定字段的文件前 Console.WriteLine("是否包含子目錄?YES | NO :"); string containChildren=Console.ReadLine().Trim(); Console.WriteLine("請輸入匹配正則:"); string regStr=Console.ReadLine(); switch(containChildren.ToLower()) { case "yes": Console.WriteLine("刪除文件名包含指定字段的文件前文件清單:"); using (StreamWriter w = File.AppendText("log.txt")) { Log ("【刪除前】文件名包含指定字段的文件清單:", w); } ShowDirectoryFilesAllLevel(myDI); Console.WriteLine("確認要刪除嗎?YES | NO :"); if(Console.ReadLine().ToLower()=="yes") { Console.WriteLine("刪除文件名與"+regStr+"匹配的文件..."); using (StreamWriter w = File.AppendText("log.txt")) { Log ("【刪除】文件名與"+regStr+"匹配的文件:", w); } DeleteFilesAllLevel(myDI,regStr); //刪除文件名包含指定字段的文件後 Console.WriteLine("刪除文件名包含指定字段的文件後文件清單:"); using (StreamWriter w = File.AppendText("log.txt")) { Log ("【刪除後】文件夾下文件清單:", w); } ShowDirectoryFilesAllLevel(myDI); Console.WriteLine("執行完畢!按任意鍵繼續..."); Console.Read(); using (StreamWriter w = File.AppendText("log.txt")) { Log ("【執行完畢!】", w); } break; } else { break; } case "no": Console.WriteLine("刪除文件名包含指定字段的文件前文件清單:"); ShowDirectoryFilesOneLevel(myDI); Console.WriteLine("確認要刪除嗎?YES | NO :"); if(Console.ReadLine().ToLower()=="yes") { Console.WriteLine("刪除文件名與"+regStr+"匹配的文件..."); using (StreamWriter w = File.AppendText("log.txt")) { Log ("【刪除前】文件名包含指定字段的文件清單:", w); } DeleteFilesOneLevel(myDI,regStr); //刪除文件名包含指定字段的文件後 Console.WriteLine("刪除文件名包含指定字段的文件後文件清單:"); using (StreamWriter w = File.AppendText("log.txt")) { Log ("【刪除後】文件夾下文件清單:", w); } ShowDirectoryFilesOneLevel(myDI); using (StreamWriter w = File.AppendText("log.txt")) { Log ("【執行完畢!】", w); } break; } else { break; } default: Console.WriteLine("輸入不正確,請輸入單詞:yes或No!"); break; } } //獲取當前文件夾路徑下文件 private static void DeleteFilesOneLevel(DirectoryInfo dir,string regStr) { FileInfo[] myFileInfo=dir.GetFiles(); foreach(FileInfo file in myFileInfo) { Regex regex1=new Regex(regStr); bool b=regex1.IsMatch(file.Name); if(b) { File.Delete(file.FullName); using (StreamWriter w = File.AppendText("log.txt")) { Log (" 刪除文件:"+file.Name, w); } } } } private static void ShowDirectoryFilesOneLevel(DirectoryInfo dir) { FileInfo[] myFileInfo=dir.GetFiles(); if(myFileInfo.Length==0) { Console.WriteLine("當前目錄下沒有文件!"); using (StreamWriter w = File.AppendText("log.txt")) { Log (" 當前目錄下沒有文件!", w); } } else { foreach(FileInfo file in myFileInfo) { Console.WriteLine(" "+file.Name); using (StreamWriter w = File.AppendText("log.txt")) { Log (" 文件名稱:"+file.Name, w); } } } } //遞歸獲取文件夾下文件 private static void DeleteFilesAllLevel(DirectoryInfo dir,string regStr) { DirectoryInfo[] myDirectoryInfo = dir.GetDirectories();//獲取子目錄的名稱 FileInfo[] myFileInfo = dir.GetFiles();//獲取文件 if(myFileInfo.Length==0) { Console.WriteLine("當前目錄下沒有文件!"); using (StreamWriter w = File.AppendText("log.txt")) { Log (" 當前目錄下沒有文件!", w); } } else { foreach(FileInfo file in myFileInfo) { Regex regex1=new Regex(regStr); bool b=regex1.IsMatch(file.Name); if(b) { File.Delete(file.FullName); using (StreamWriter w = File.AppendText("log.txt")) { Log (" 刪除文件:"+file.Name, w); } } } } foreach(DirectoryInfo DirInfo in myDirectoryInfo) { Console.WriteLine("文件夾:"+DirInfo.Name); using (StreamWriter w = File.AppendText("log.txt")) { Log ("文件目錄:"+DirInfo.FullName, w); } DeleteFilesAllLevel(DirInfo,regStr); } } private static void ShowDirectoryFilesAllLevel(DirectoryInfo dir) { DirectoryInfo[] myDirectoryInfo = dir.GetDirectories();//獲取子目錄的名稱 FileInfo[] myFileInfo = dir.GetFiles();//獲取文件 foreach(FileInfo file in myFileInfo) { Console.WriteLine(" "+file.Name); using (StreamWriter w = File.AppendText("log.txt")) { Log (" 文件名稱:"+file.Name, w); } } foreach(DirectoryInfo DirInfo in myDirectoryInfo) { Console.WriteLine("文件夾:"+DirInfo.Name); using (StreamWriter w = File.AppendText("log.txt")) { Log ("文件目錄:"+DirInfo.FullName, w); } ShowDirectoryFilesAllLevel(DirInfo); } } public static void Log (String logMessage, TextWriter w) { w.WriteLine("{0} {1}", DateTime.Now.ToString(), logMessage); } }

最後更新:2017-04-02 06:51:30

  上一篇:go 內網FTP服務器架設不完全解析
  下一篇:go 讀mysql中文亂碼問題解決方法