2011-09-02 82 views
2

我知道怎麼去搭配這樣的文件夾中搜索模式的所有文件:如何將文件路徑與文件搜索模式(即* .jpg)進行匹配?

DirectoryInfo folderInfo = new DirectoryInfo(folderPath); 

FileInfo[] fileInfos = folderInfo.GetFiles(searchPattern); 

但我的問題是,如果我已經知道文件的路徑,我怎麼能與搜索模式相匹配呢?爲了兼容性,搜索模式必須與* .jpg等格式相同。

+0

您能否爲您的問題添加更多信息?從你寫的內容來看,你是否已經有了一個文件例如c:\ folder \ f.jpg並且你想知道在同一個文件夾中是否有更多類似的文件是不清楚的。 – gyurisc

+3

你能否改述你的問題,我沒有得到你。 – Zenwalker

+0

'*。*'會匹配你拋出的任何東西,但這不是你的真正意思,是嗎? – spender

回答

0

我解釋你的問題是這意味着你已經有文件路徑的字符串,只是想檢查是否匹配特定模式。爲此,您首先需要考慮模式修補是否真的是您需要的,最好直接使用擴展名。

假設這不是一個選項,你可能會想要使用正則表達式。您需要將帶有通配符的字符串轉換爲正則表達式。不幸的是,我不知道這樣做的內置方式,但應該可以通過簡單地轉義任何在正則表達式中有意義的字符並用適當的正則表達式替換通配符來完成。

+0

我在檢查我的賬戶,我忘記了爲什麼我問這個問題。無論如何感謝.... – AKFish

0

那麼,如果你已經有了完整的文件路徑,並且只使用Path.GetExtension或類似的方法來隔離擴展,那麼你只需在設置之前添加一個*,對吧?

0

如果你已經知道路徑,不要使用搜索模式。 嘗試

FileInfo fi = new FileInfo(FilePath); 
+0

你甚至試圖得到任擇議定書嗎?也許他不在尋找這個解決方案。 – Zenwalker

-1

您可以使用Directory.GetFiles(如「Directory.GetFiles(」d:/ xxx/*。jpg「)」)獲取所有匹配文件的字符串數組,然後打開或處理單個文件。

+0

這似乎並沒有工作。你的意思是'Directory.GetFiles(@「d:\ xxx」,「* .jpg」)'? –

相關問題