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); //遞迴方法
}
}
叫用:
string searchPattern = "*";
可以指定目錄 或
//string InitDirectory = @"C:\";
// 取得目前工作目錄
string InitDirectory =Directory.GetCurrentDirectory();
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
END
|