whitefox 發表於 2023-5-31 09:07:48

[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]
查看完整版本: [C#] 搜尋指定目錄下具特定關鍵字檔名與特定副檔名的檔案