2014年9月9日 星期二

C# 列出目錄及子目錄之所有檔案或特定檔案

轉貼自:http://note.tc.edu.tw/446.html
C# 列出目錄及子目錄之所有檔案

用遞迴的方法,列出目錄及子目錄之所有檔案。以下的方法如果目錄或檔名太長會出錯。
using System.IO;
using System.Collections;

private void GetFiles(DirectoryInfo di, string searchPattern, ref ArrayList MyFiles)
{
     //取得檔案
    foreach (FileInfo fi in di.GetFiles(searchPattern))
    {
        MyFiles.Add(fi.FullName);
    }

    // Search in subdirctories
    foreach (DirectoryInfo d in di.GetDirectories())
    {
        GetFiles(d, searchPattern, ref MyFiles); //遞迴方法
    }
}
呼叫使用:
//檔名的Keyword
string searchPattern = "*";

//可以指定目錄 或 取得目前工作目錄
//string InitDirectory = @"C:\";
string InitDirectory =Directory.GetCurrentDirectory();

//存放檔名的List
ArrayList MyFiles = new ArrayList();

DirectoryInfo di = new DirectoryInfo(InitDirectory);

// 呼叫上面的函式 Get Files
GetFiles(di, searchPattern, ref MyFiles);

//Print it
foreach (string s in MyFiles)
{
  //   System.Diagnostics.Debug.Write(s);
    this.textBox3.AppendText(s+"\n");
}
[參考連結]
http://www.csharpfriends.com/Forums/ShowPost.aspx?PostID=33800

沒有留言:

張貼留言