更新
This commit is contained in:
parent
358cc33f3a
commit
20f3709ac9
@ -42,26 +42,29 @@ public static class FolderCloner
|
|||||||
{
|
{
|
||||||
return;
|
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);
|
var dir = queue.Dequeue();
|
||||||
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);
|
|
||||||
}
|
|
||||||
try
|
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)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.WriteLine($"创建文件失败 {newFilePath}: {ex.Message}");
|
Console.WriteLine($"Clone失败 {ex.Message}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user