[C#] 搜尋指定目錄下具特定關鍵字檔名與特定副檔名的檔案
這個例子會用到遞迴傳遞跟使用正則表達式來篩選關鍵字例子開始前別忘先引入命名空間using System;
using System.Collections.Generic;
using System.IO;
using System.Text.RegularExpressions;此例子可以省略引入的是
System → 使用 try...cathc... 中使用 Exception 才會用到
System.Collections.Generic → 使用 List 來返回查詢結果,若使用 ObservableCollection 有同樣功能也不用引入此命名空間
Keyword給字串"*"就可搜尋指定副檔名的全部檔案
Extension給字串"*"就可以搜尋指定關鍵字的全部檔案
以上兩者都給"*"就是搜尋該目錄下全部檔案public static List<string> FindFile(string DirPath, string Keyword, string Extension)
{
List<string> FoundList = new List<string>();
DirectoryInfo Dir = new DirectoryInfo(DirPath);
try
{
// 遞迴檢查子目錄
foreach (DirectoryInfo d in Dir.GetDirectories())
{
FoundList.AddRange(FindFile((Dir + d.ToString() + @"\"), Keyword, Extension));
}
foreach (FileInfo f in Dir.GetFiles("*." + Extension))
{
Regex regex = new Regex(Keyword);
Match match = regex.Match(f.ToString());
if (match.Success)
{
FoundList.Add(Dir + f.ToString());
}
}
}
catch (Exception ex)
{
}
return FoundList;
}
頁:
[1]