如何将子文件夹从文件夹复制到另一个文件夹?

时间:2013-09-13 06:58:58

标签: c# console-application

我在app中使用C#.net控制台应用程序我有两个文件夹1)D:\Working Projects\Alticore\AssetXML\LIS, 2)D:\Working Projects\Alticore\AssetXMLProcessed

现在我只想从D:\Working Projects\Alticore\AssetXML\LIS to D:\Working Projects\Alticore\AssetXMLProcessed.

复制子文件夹(即LIS)

这就是像"D:\Working Projects\Alticore\AssetXMLProcessed/LIS"这样的xaclty。

我对这个问题有任何解决方案。

3 个答案:

答案 0 :(得分:0)

在Windows XP下,它将是:

move "c:\documents and settings\%USERNAME%\desktop\TZClock" "C:\documents and settings\%USERNAME%\Start Menu\Programs\TZClock"

在Windows 7上,它是以下内容(虽然我现在无法对此进行测试):

move "c:\users\%USERNAME%\desktop\TZClock" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\TZClock"

您可以执行此过程或其他事情创建新文件复制所有数据。

答案 1 :(得分:0)

这应该做的工作

public static void Copy(String srcPath, String destPath)
{
    DirectoryInfo srcDirectory = new DirectoryInfo(srcPath);
    if (!srcDirectory.Exists) return;

    // Creates LIS directory
    destPath = Path.Combine(Path.Combine(destPath, srcDirectory.Name));
    Directory.CreateDirectory(destPath);

    // Creates all sub directories from srcPath to your destPath
    foreach (String dirPath in Directory.GetDirectories(srcPath, "*", SearchOption.AllDirectories))
        Directory.CreateDirectory(dirPath.Replace(srcPath, destPath));

    // Copies all files from all sub directories from srcPath to your destPath
    foreach (String copyPath in Directory.GetFiles(srcPath, "*.*", SearchOption.AllDirectories))
        File.Copy(copyPath, copyPath.Replace(srcPath, destPath), true);
}

用法:

Copy(@"D:\Working Projects\Alticore\AssetXML\LIS", @"D:\Working Projects\Alticore\AssetXMLProcessed")

如果您不想复制子文件夹或其文件,请删除不需要的foreach。 顺便说一句,它将覆盖复制的文件。

答案 2 :(得分:0)

还有一个选项,你可以做的是 有 System.IO命名空间中的File.Copy(src,dest)方法也可以使用它。