C# C中的文件夹结构副本
我正在创建一个应用程序,在这个应用程序中,我们可以通过网络选择目标计算机,它会将选定的源文件复制到特定文件夹中。本质上,它的目的是在应用服务器上工作,其中一台机器将有多个应用服务器,在本例中是ApacheTomcat 目前,我的代码能够将一个源文件处理到特定的目标。它会对该机器上的所有tomcat文件夹执行此操作MCAT1、tomcat2。。等等 我正在使用directoryinfo选择文件夹列表C# C中的文件夹结构副本,c#,file,copy,directory,C#,File,Copy,Directory,我正在创建一个应用程序,在这个应用程序中,我们可以通过网络选择目标计算机,它会将选定的源文件复制到特定文件夹中。本质上,它的目的是在应用服务器上工作,其中一台机器将有多个应用服务器,在本例中是ApacheTomcat 目前,我的代码能够将一个源文件处理到特定的目标。它会对该机器上的所有tomcat文件夹执行此操作MCAT1、tomcat2。。等等 我正在使用directoryinfo选择文件夹列表 DirectoryInfo diTom = new DirectoryInfo(txtTomcat
DirectoryInfo diTom = new DirectoryInfo(txtTomcat.Text);
其中txtTomcat.text是tomcat文件夹的网络路径。然后我使用foreach循环
foreach (DirectoryInfo subDir in diTomDirs)
因此,对于目录信息中的每个tomcat条目,它执行一个简单的File.Copy代码,将文件复制到为每个tomcat指定的文件夹中
现在,我想扩展我的应用程序功能来考虑源文件夹,而不是仅仅文件.< /p>
e、 g.我有文件夹A,包含file1.txt和文件夹B。文件夹B依次包含file2.txt和file3.txt。类似的结构也会出现在目标tomcat上,但其他文件夹和文件很少
我想将源文件夹A作为源,它应该执行现有的文件复制代码,但是现在,将文件从源文件夹复制到目标上的相应文件夹,即Asource->Aserver,将文件从Bsource复制到Bserver
我希望我没有说得太让人困惑
我想这将是foreach逻辑,我需要调整,但无法找出如何调整
有什么线索吗
非常感谢,
Abhi更简单的方法是使用递归函数
public static void ProcessDirectory(string targetDirectory)
{
foreach(string fileName in Directory.GetFiles(targetDirectory))
ProcessFile(fileName);
foreach(string subdirectory in Directory.GetDirectories(targetDirectory))
ProcessDirectory(subdirectory);
// Here is called for each directory and sub directory
}
public static void ProcessFile(string path)
{
// Here is called for each file in all subdirectories
}
一种选择是使用机器人技术。它比你可能有时间投资的东西更可靠的重试和最佳并行。正如slugseter所指出的,它于2008年发货 我知道很多大公司用它来推出他们的前端服务器 您可以从windows资源工具包工具中获取:
你是说你想要一个递归副本?为什么写这个?为什么不直接调用呢?特别是从Server 2008开始,它随操作系统一起提供?请看Microsoft Sync Framework,可能是重复的,谢谢您的输入。不确定他们是否会同意使用其他工具,因为这个应用程序几乎完成了,我只需要将此功能添加到它。此外,机器人技术是否可以跨平台工作?假设应用程序服务器在linux机器上。你的应用程序可以调用该工具,但不能调用xplat。只有窗户。当然,您只需要插入:File.Copy、Path.GetFileName和DirectoryInfo.Name、anedv DirectoryInfo.Create。IIRC