1. ホーム
  2. c#

[解決済み] C#でディレクトリの中身を丸ごとコピーする

2022-03-17 16:22:07

質問

C#で、あるディレクトリの中身を丸ごと別の場所にコピーしたい。

を使用してこれを行う方法はないようです。 System.IO クラスは、多くの再帰的な処理を必要としません。

VBのメソッドで、参照を Microsoft.VisualBasic :

new Microsoft.VisualBasic.Devices.Computer().
    FileSystem.CopyDirectory( sourceFolder, outputFolder );

これはかなり醜いハックのように思えます。もっといい方法はないのでしょうか?

解決方法は?

もっと簡単

private static void CopyFilesRecursively(string sourcePath, string targetPath)
{
    //Now Create all of the directories
    foreach (string dirPath in Directory.GetDirectories(sourcePath, "*", SearchOption.AllDirectories))
    {
        Directory.CreateDirectory(dirPath.Replace(sourcePath, targetPath));
    }

    //Copy all the files & Replaces any files with the same name
    foreach (string newPath in Directory.GetFiles(sourcePath, "*.*",SearchOption.AllDirectories))
    {
        File.Copy(newPath, newPath.Replace(sourcePath, targetPath), true);
    }
}