2010-12-17 6 views
1

私は複数のディレクトリから取得したファイル

は、現在私がやっている複数のディレクトリからの配列またはリストへのファイルのリストを取得しようとしています:

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

をしかし、私はまたtempbatchaddresses += Directory.GetFiles(@"d:\", "*.log");

が必要第3のものも同様である。私は3つの異なるディレクトリからファイルのファイルの場所を追加する必要があります。

どうすればよいですか?問題に取り組むために類似した無数の方法はたくさんあり

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

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

答えて

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

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

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

など..

4

はこのような何かを試してみてください。ここに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; 
    } 
} 
1

+3

説明なしでdownvoteを愛していませんか? – BeemerGuy

関連する問題