- UID
- 390967
- 帖子
- 1601
- 主題
- 825
- 精華
- 0
- 積分
- 855
- 楓幣
- 11117
- 威望
- 396
- 存款
- 10100
- 贊助金額
- 1800
- 推廣
- 0
- GP
- 2687
- 閱讀權限
- 150
- 在線時間
- 189 小時
- 註冊時間
- 2023-5-18
- 最後登入
- 2024-11-24
|
這個例子會用到遞迴傳遞跟使用正則表達式來篩選關鍵字
例子開始前別忘先引入命名空間- 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;
- }
複製代碼 |
|