そのため、一連の構成ファイルが保存されているディレクトリがありますが、構成ファイルも含むいくつかのサブディレクトリもあります。ステーションごとにすべての構成ファイルを収集する機能がありましたが、現在はサブフォルダーではなく、ディレクトリ内のファイルのみを収集しています。古いコード:
string MasterList = "ConfigsForStation1.txt";
string dirC = "..\\config\\Station1\\";
foreach (FileInfo fileC in dirC.GetFiles())
{
if(!System.IO.Path.GetExtension(fileC.FullName).EndsWith(".confg"))
{ WriteToList(fileC,MasterList);}
}
そして今、このサブディレクトリのもので、これらの行に沿って実装されています:
string MasterList = ...;
string dirC = ...;
//collect files in sub directories substations 1 & 2
foreach(DirectoryInfo Dx in dirC.GetDirectories())
{ foreach(FileInfo fileC in Dx.GetFiles())
{...}
}
//collect files in parent directory station 1
foreach(FileInfo fileC in dirC.GetFiles())
{...}
私の質問は: foreach 内に foreach をネストするのではなく、すべてのサブフォルダーからファイルを収集するよりクリーンな方法はありますか? 次に、親のものに対して3番目のパスを実行します。少しずさんな感じがして、私のためにそうする dirC.getAllsub() のようなコマンドがあるように感じますか? コードをクリーンアップするためのヒントやアイデアを探しているだけです。