复制并重命名目录
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'。
我正在尝试修改此代码以复制和重命名(而不是移动)多个目录。我有一个包含 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'。