熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

C#刪除多重文件夾

2013-11-13 10:38:40  來源: .NET編程 

  一個根文件夾底下包含多級目錄每一級又存在多個個子文件夾每個文件夾裡面又存在多個文件

  如果要刪除所有子文件又保存最頂級的目錄文件夾那采用什麼辦法處理好呢?

  處理方法

   直接刪除根文件夾然後再創建根文件夾

  void deleteAllFile(string path)

  {

  DirectoryDelete(pathtrue);

  DirectoryCreateDirectory(path);

  }

  遍歷所有子目錄文件夾的文件逐個刪除

  ///

  

  /// 遍歷文件夾及子文件夾所有文件

  ///

  /// string dir=ListFiles(new DirectoryInfo(dir));

  ///

  文件夾目錄路徑

  /// 返回ArrayList對象

  public static SystemCollectionsArrayList ListFiles(string fileDirectory)

  {

  ArrayList arylist = null;

  if (DirectoryExists(fileDirectory))

  {

  DirectoryInfo dinfo = new DirectoryInfo(fileDirectory);

  if (dinfo != null)

  {

  FileSystemInfo[] files = dinfoGetFileSystemInfos();

  for (int i = ; i < filesLength; i++)

  {

  FileInfo file = files[i] as FileInfo;

  if (file != null)

  {

  if (arylist == null)

  arylist = new ArrayList();

  arylistAdd(file);

  }

  else

  {

  ListFiles(files[i]FullName); //對於子目錄進行遞歸調用

  }

  }

  }

  }

  return arylist;

  }

  用第一個方法最直接不用遞歸不用遍歷但調用系統的方法不知道內部原理怎麼運行的

  總體來說應該是第一種方法比第二種方法的性能要好!待進一步求證

  刪除一個文件夾下所有文件可以用如下文件方法

  void deleteAllFile(string path)

  {

  foreach (string dirStr in DirectoryGetDirectories(path))

  {

  DirectoryInfo dir = new DirectoryInfo(dirStr);

  }

  ArrayList folders=new ArrayList();

  FileSystemInfo[] fileArr = dirGetFileSystemInfos();

  for (int i = ; i < foldersCount; i++)

  {

  FileInfo f = folders[i] as FileInfo;

  if (f == null)

  {

  DirectoryInfo d = folders[i] as DirectoryInfo;

  dDelete();

  }

  }

  }


From:http://tw.wingwit.com/Article/program/net/201311/14200.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.