階層内の特定のレベル、具体的にはすべてのサブサブフォルダ内のすべてのファイルを反復処理しようとしています。ファイルを実際に操作する前に、すべてのファイルを数えてプログレスバーを表示したいと思っています。つまり、反復メソッドを2回呼び出す必要があります。これは関連するコードです。私は今使っています:特定のレベルのファイルを繰り返します。
Iterate(bool count)
{
foreach (string dir in Directory.GetDirectories(root))
foreach (string subdir in Directory.GetDirectories(dir))
foreach (string file in Directory.GetFiles(subdir))
{
if (count) progressBar.Maximum++;
else
{
//do operations
}
}
}
私はこれを行うより良い方法があるのだろうかと思います。確かに、すべてのフォルダレベルにforeach
を追加するよりも良い方法が必要です。
string [] fileEntries = Directory.GetFiles(subdir);
int intFileCount = fileEntries.length;
をまたはループファイルのみをカウントするように機能するかどうかは、それを置き換えることができます。
最も内側の 'foreach'ループはrep 'GetFiles'によって返された配列の' Length() 'プロパティへの呼び出しによって結び付けられています。 –