程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#文件操作——刪除多重文件夾

C#文件操作——刪除多重文件夾

編輯:C#入門知識

問題:     一個根文件夾,底下包含多級目錄,每一級又存在多個個子文件夾,每個文件夾裡面又存在多個文件。     如果要刪除所有子文件又保存最頂級的目錄文件夾,那采用什麼辦法處理好呢?     處理方法      1、 直接刪除根文件夾,然後再創建根文件夾。     void deleteAllFile(string path) {   Directory.Delete(path,true);    Directory.CreateDirectory(path); }  2、遍歷所有子目錄文件夾的文件,逐個刪除。                       /// <summary>         /// 遍歷文件夾及子文件夾所有文件         /// </summaryd>         /// <c>string dir=ListFiles(new DirectoryInfo(dir));</c>         /// <param name="fileDirectory">文件夾目錄路徑</param>         /// <returns>返回ArrayList對象</returns>         public static System.Collections.ArrayList ListFiles(string fileDirectory)         {             ArrayList arylist = null;             if (Directory.Exists(fileDirectory))             {                 DirectoryInfo dinfo = new DirectoryInfo(fileDirectory);                 if (dinfo != null)                 {                     FileSystemInfo[] files = dinfo.GetFileSystemInfos();                     for (int i = 0; i < files.Length; i++)                     {                         FileInfo file = files[i] as FileInfo;                         if (file != null)                         {                             if (arylist == null)                                 arylist = new ArrayList();                             arylist.Add(file);                         }                         else                         {                             ListFiles(files[i].FullName);  //對於子目錄,進行遞歸調用                         }                     }                 }             }             return arylist;         }      用第一個方法最直接,不用遞歸,不用遍歷,但調用系統的方法,不知道內部原理怎麼運行的。     總體來說應該是第一種方法比第二種方法的性能要好!待進一步求證。           刪除一個文件夾下所有文件可以用如下文件方法。                void deleteAllFile(string path) {    foreach (string dirStr in Directory.GetDirectories(path))      {  www.2cto.com        DirectoryInfo dir = new DirectoryInfo(dirStr);     }    ArrayList folders=new ArrayList();     FileSystemInfo[] fileArr = dir.GetFileSystemInfos();     for (int i = 0; i < folders.Count; i++)        {            FileInfo f = folders[i] as FileInfo;            if (f == null)              {                 DirectoryInfo d = folders[i] as DirectoryInfo;                 d.Delete();             }        }  }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved