2013-01-09 321 views
1

我想搜索目錄中結尾爲.vcproj.sln的所有文件。從文檔來看,我不清楚searchPattern是否可以指定多個過濾器,或者是否必須運行單獨的搜索。可以使用多個搜索字符串搜索System.IO.Directory.GetFiles()嗎?

+0

這裏有類似問題http://stackoverflow.com/questions/163162/can-you-call-directory-getfiles-with-multiple-filters – Dhawalk

+2

@Dhawalk鏈接:在接受尼斯使用LINQ的儘管LINQ在.NET 2.0環境中不可用,但該問題的答案仍然存在。 –

+0

我的不好。我錯過了....感謝 – Dhawalk

回答

4

不,您只能指定一個過濾器。

您可以將每個搜索的結果添加到HashSet<string>以獲取與這兩個搜索匹配的唯一文件列表。 A List<string>在兩種不同的通配符搜索模式可以匹配相同文件的邊緣情況下不起作用。

UPDATE

HashSet<T>僅在.NET 3.5及更高版本。由於您使用的是2.0,因此您可以使用List<T>,但在添加之前應檢查每個項目是否已存在。

1

對於​​您可以使用1個過濾器選項。你可以分開拿到它們。

string[] file1 = System.IO.Directory.GetFiles(path, "*.vcproj"); 
string[] file2 = System.IO.Directory.GetFiles(path, "*.sln ");