更新
This commit is contained in:
parent
358cc33f3a
commit
20f3709ac9
@ -42,26 +42,29 @@ public static class FolderCloner
|
||||
{
|
||||
return;
|
||||
}
|
||||
foreach (string subDirPath in Directory.GetDirectories(source, "*", SearchOption.AllDirectories))
|
||||
var queue = new Queue<string>();
|
||||
queue.Enqueue(source);
|
||||
while (queue.Count > 0)
|
||||
{
|
||||
string newSubDirPath = subDirPath.Replace(source, dest);
|
||||
Directory.CreateDirectory(newSubDirPath);
|
||||
}
|
||||
foreach (string filePath in Directory.GetFiles(source, "*", SearchOption.AllDirectories))
|
||||
{
|
||||
string newFilePath = filePath.Replace(source, dest);
|
||||
string directoryName = Path.GetDirectoryName(newFilePath);
|
||||
if (!Directory.Exists(directoryName))
|
||||
{
|
||||
Directory.CreateDirectory(directoryName);
|
||||
}
|
||||
var dir = queue.Dequeue();
|
||||
try
|
||||
{
|
||||
using (File.Create(newFilePath)) { }
|
||||
foreach (var filePath in Directory.GetFiles(dir))
|
||||
{
|
||||
var newFilePath = Path.Combine(dest, Path.GetRelativePath(source, filePath));
|
||||
using var _ = File.Create(newFilePath);
|
||||
}
|
||||
|
||||
foreach (var dirPath in Directory.GetDirectories(dir))
|
||||
{
|
||||
queue.Enqueue(dirPath);
|
||||
var newDirPath = Path.Combine(dest, Path.GetRelativePath(source, dirPath));
|
||||
Directory.CreateDirectory(newDirPath);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"创建文件失败 {newFilePath}: {ex.Message}");
|
||||
Console.WriteLine($"Clone失败 {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user