[英]Error when using Directory.GetFiles() with regex
我正在為自己的Windows Explorer開發搜索功能。 我使用Directory.GetFiles(string path, string searchPattern, searchOption searchOption)
來做到這一點。 我的問題是當我打電話時:
string searchPattern = '"' + searchBox.Text + '"'; // searchPattern = "duck"
string path = @"D:\test";
string[] searchResults = Directory.GetFiles(path, searchPattern, System.IO.SearchOption.AllDirectories);
它引發異常:
“路徑中包含非法字符。”
這是文件結構:
D:\
---test\ (Folder)
-------duck.txt (File)
Directory.GetFiles
不支持正則表達式。 但是,它確實支持少數特殊的“通配符”字符。 從MSDN:
*
零個或多個字符。
?
恰好為零或一個字符。
嘗試以下方法:
string searchPattern = '*' + searchBox.Text + '*'; // searchPattern = *duck*
string path = @"D:\test";
string[] searchResults = Directory.GetFiles(path, searchPattern, System.IO.SearchOption.AllDirectories);
您會收到“路徑中的非法字符。”。 因為您在搜索模式中輸入了"
字符
嘗試
string searchPattern ="duck.txt";
您會找到想要的文件
如果您只需要提供文件名作為搜索模式,則
string searchPattern =searchBox.Text +".txt";
如果您需要獲取包含搜索文本的文件,則可以使用
string searchPattern ="*" +searchBox.Text +"*";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.