-1

ソースから宛先にフォルダーをコピーしようとしています。ソース フォルダーと宛先フォルダーは同じディレクトリになります。フォルダーの構造はコピーごとに異なるため、汎用的である必要があります。フォルダには、コピーする必要のあるファイルとサブディレクトリが含まれます。そのため、1 つのフォルダーの内容全体を別のフォルダーにコピーする必要があります。

これが漠然としすぎていないことを願っています。しかし、私が探しているものの簡単な例: ソース フォルダー パス: c:\directories\versions\11.0.2 宛先フォルダー パス: c:\directories\versions\11.0.3

11.0.2 の内容をすべて 11.0.3 にコピー

これが私が現在持っているコードで、効果的ではありません:

//Create all of the directories
foreach (string dirPath in Directory.GetDirectories(sourceDir, "*",
SearchOption.AllDirectories))
Directory.CreateDirectory(dirPath.Replace(sourceDir, targetDir));

//Copy all the files
foreach (string newPath in Directory.GetFiles(sourceDir, "*.*",
SearchOption.AllDirectories))
File.Copy(newPath, newPath.Replace(sourceDir, targetDir));

これを達成する方法のアイデアはありますか?

4

1 に答える 1

0

これはMSDNの例です

この例では、I/O クラスを使用してディレクトリの内容を別の場所に同期的にコピーする方法を示します。この例では、ユーザーはサブディレクトリもコピーするかどうかを指定できます。サブディレクトリがコピーされる場合、この例のメソッドは、コピーするものがなくなるまで、後続の各サブディレクトリでそれ自体を呼び出すことによって、再帰的にそれらをコピーします。

あなたも見ることができます

非同期ファイル I/O

非同期操作を使用すると、メイン スレッドをブロックすることなく、リソースを大量に消費する I/O 操作を実行できます。このパフォーマンスに関する考慮事項は、時間のかかるストリーム操作によって UI スレッドがブロックされ、アプリが動作していないように見える Windows ストア アプリまたはデスクトップ アプリで特に重要です。

于 2013-08-19T18:26:41.883 に答える