カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

再帰を使わずにディレクトリをコピー(Queueクラス)

この記事は最終更新日から1年以上経過しています。
// Queueクラスを使用したコピー(再帰を使用しない方法)
Queue q = new Queue();
q.Enqueue(RootDirectory);

while (q.Count > 0)
{
    DirectoryInfo sourceDirectory = (DirectoryInfo)q.Dequeue();
    Target = sourceDirectory.FullName;

    foreach (string file in Directory.GetFiles(Target, pattern))
    {
    	//ここに各ファイルに対する処理を記述
    }

    DirectoryInfo[] dirs = sourceDirectory.GetDirectories();
    foreach (DirectoryInfo s in dirs)
    {
        q.Enqueue(s);
    }
}
// Queue : wrapper
この記事がお役に立ちましたらシェアお願いします