我有一个名为OLD
的文件夹。里面有一个目录结构,如:
Old
---DSL
---------CI
------------AppFolder1
------------AppFolder2
---------------------------FUN2
--------CA
------------AppFolder1
在每个文件夹中,可能有也可能没有文件。
我有一个名为NEW
的文件夹,它有更新,并且根据更改,相应的目录结构在其中。关键是它与OLD
相同。例如:
NEW
---DSL
---------CI
------------AppFolder2
---------------------------FUN2
--------CA
您可以看到目录结构(包括文件夹名称)相同。我希望NEW
中的所有文件都替换OLD
中的相应文件。
请为我提供一个起点。
答案 0 :(得分:1)
我创建了一个文件夹Old
,其结构为:
旧根C:\Old
。
-Old
--CI
---AppFolder1
---AppFolder2
New
并没有任何内容。
然后运行我创建的控制台应用,将NewRoot
设置为C:\New
并获得:
-New
--CI
---AppFolder1
---AppFolder2
不确定这是否是您正在寻找的东西 - 如果不建议您希望以不同的方式做什么:)
private static void SyncDirectories(string oldRoot, string newRoot)
{
CreateDirectoriesRecursive(Directory.GetDirectories(oldRoot), newRoot);
}
private static void CreateDirectoriesRecursive(string[] oldDirectories, string root)
{
foreach (string oldDirectory in oldDirectories)
{
string directoryToCreate = root + @"\" + new DirectoryInfo(oldDirectory).Name;
if (!Directory.Exists(directoryToCreate))
Directory.CreateDirectory(directoryToCreate);
if (Directory.GetDirectories(oldDirectory).Count() > 0)
CreateDirectoriesRecursive(Directory.GetDirectories(oldDirectory), directoryToCreate);
}
}
答案 1 :(得分:0)
您可以使用FileSystemWatcher类来控制OLD目录中的更改,将它们重复到新目录中。
此外,您也可以将此手表放在NEW上,以管理不必要的访问权限。