从多个目录中获取文件

时间:2010-12-17 00:39:11

标签: c#

我正在尝试将文件列表放入多个目录中的数组或列表

目前我在做:

tempbatchaddresses = Directory.GetFiles(@"c:\", "*.log");

但我还需要tempbatchaddresses += Directory.GetFiles(@"d:\", "*.log");

还有第三个。我需要添加来自3个不同目录的文件的文件位置。

我该怎么做?

3 个答案:

答案 0 :(得分:5)

tempBatchAddresses = Directory.GetFiles(@"c:\", "*.log").ToList();

tempBatchAddresses.AddRange(Directory.GetFiles(@"d:\", "*.log").ToList());

tempBatchAddresses.AddRange(Directory.GetFiles("some dir", "some pattern").ToList());

依旧......

答案 1 :(得分:4)

尝试这样的事情:

List<string> myFiles = new List<string>();
myFiles.AddRange(Directory.GetFiles(@"c:\", "*.log"));
...etc...

foreach (string file in myFiles)
{
    //do whatever you want
}

答案 2 :(得分:1)

有许多类似的方法可以解决这个问题。这是一个。

static void Main()
{
    IEnumerable<string> files = GetFiles("*.log", @"C:\", @"D:\", @"E:\");
}

static IEnumerable<string> GetFiles(string searchPattern, params string[] directories)
{
    foreach (string directory in directories)
    {
        foreach (string file in Directory.GetFiles(directory, searchPattern))
            yield return file;
    }
}