如何读取特定文件夹中的所有文件并过滤多种类型?

时间:2015-07-16 20:28:48

标签: c#

要遍历一种类型的所有文件,我这样做:

foreach (string file in Directory.EnumerateFiles(folderPath, "*.txt"))
{
    (code here)
}

取自how to read all files inside particular folder

除了制作两个循环之外,有没有办法获得2个标签?就像拥有所有* .bmp,* .png ......

一样

注意:我接受此处接受的答案比提议的答案更简单,但两种工作方式都可以。

1 个答案:

答案 0 :(得分:3)

你可以连接这样的两个结果

foreach (string file in Directory.EnumerateFiles(folderPath, "*.txt").Concat(Directory.EnumerateFiles(folderPath, "*.bmp")))
{
    // (code here)
}

或者使它像这样的功能

    IEnumerable<string> EnumerateFiles(string folderPath, params string[] patterns)
    {
        return patterns.SelectMany(pattern => Directory.EnumerateFiles(folderPath, pattern));
    }

    void Later()
    {
        foreach (var file in EnumerateFiles(".", "*.config", "*.exe"))
        {
         // (code here)
        }
    }