0

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

现在我只想复制子文件夹(即 LIS)D:\Working Projects\Alticore\AssetXML\LIS to D:\Working Projects\Alticore\AssetXMLProcessed.

就是这样"D:\Working Projects\Alticore\AssetXMLProcessed/LIS"

对此问题的任何解决方案我将不胜感激。

4

3 回答 3

0

您可以做的另一种选择是
System.IO 命名空间中有 File.Copy(src, dest) 方法,您也可以使用它。

于 2013-09-13T07:28:59.013 回答
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"

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

于 2013-09-13T07:05:10.047 回答
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。顺便说一句,它将覆盖复制的文件。

于 2013-09-13T07:21:46.497 回答