簡體   English   中英

如何使用Directory.EnumerateFiles()應用多個搜索模式?

[英]How to apply multiple search patterns with Directory.EnumerateFiles()?

我使用下面的代碼搜索具有特定擴展名的目錄(及其子目錄)中的文件:

Directory.EnumerateFiles(dir, Path.GetFileNameWithoutExtension(item) + ".ext1" , SearchOption.AllDirectories);

現在,我可以使用不同的擴展名文件,如“.ext1”,“。ext2”,“。ext3”。 我想在我的搜索模式中結合這些擴展,如下所示:

Directory.EnumerateFiles(dir, Path.GetFileNameWithoutExtension(item) + ".ext1||.ext2" , SearchOption.AllDirectories);

建議好嗎?

您可以使用自定義方法拆分模式字符串,然后調用EnumerateFiles

public static IEnumerable<string> MultiEnumerateFiles(string path, string patterns)
{
    foreach (var pattern in patterns.Split('|'))
        foreach (var file in Directory.EnumerateFiles(path, pattern, SearchOption.AllDirectories))
            yield return file;
}

通過使用yield您將獲得與原始EnumerateFiles相同的惰性評估行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM