复制并重命名目录

Copy and rename directory

我正在尝试修改此代码以复制和重命名(而不是移动)多个目录。我有一个包含 2 列的 CSV 文件。 "original folder name" 和 "new folder name".

using System.Linq;
using System.IO;

string csv = "csv path";
string sourcedir = @"C:\temp1\";
string targetdir = @"C:\temp2\";

string[] items = File.ReadAllLines(csv);
foreach(var item in items)
{
    string oldname = item.Split(';')[0];
    string newname = item.Split(';')[1];

    Directory.Move(sourcedir +oldname, targetdir +newname);
}

source-文件夹不包含嵌套文件夹时使用 this way:

string csv = "csv path";
string sourcedir = @"C:\temp1\";
string targetdir = @"C:\temp2\";

var items = File.ReadAllLines(csv);

foreach(var item in items)
{
    var paths = item.Split(";");
    var sourcePath = Path.Combine(sourcedir, paths[0]);
    var targetPath = Path.Combine(targetdir, paths[1]);

    System.IO.Directory.CreateDirectory(targetPath);

    var files = System.IO.Directory.GetFiles(sourcePath);

    foreach (string s in files)
    {
        var fileName = System.IO.Path.GetFileName(s);
        var destFile = System.IO.Path.Combine(targetPath, fileName);

        System.IO.File.Copy(s, destFile, true);
    }
}

否则,您需要使用递归遍历嵌套文件夹 - 请参阅示例 MS docs 'How to: Copy directories'