0

我正在编写一个创建 RAMDisk 的类(基于类库),并且由于波动性,每隔 X 分钟我需要将 RAMDisk 的内容备份到物理位置。建议使用 CopyFileEx,因为 .NET 文件复制方法显然不起作用。

出于某种原因,我在尝试使用 CopyFileEx 时遇到了 Invalid Arguements 错误。我假设我仍然可以在这个函数中使用其余的 .NET 方法,但可以使用一些帮助来修复/清理它。

public static void CopyDirectoryVSS(string sourcePath, string targetPath)
{
    // Check if the target directory exists, if not, create it.
    if (Directory.Exists(targetPath) == false)
    {
        Directory.CreateDirectory(targetPath);
    }

    // Copy each file into it’s new directory.
    foreach (string dir in Directory.GetDirectories(sourcePath))
    {
        foreach (string file in Directory.GetFiles(dir, "*.*"))
        {
            Console.WriteLine(@"Copying {0}\{1}", targetPath, file);
            CopyFileEx(file, Path.Combine(target, file), null, 0, 0, 0);
        }
    }

    // Copy each subdirectory using recursion.
    DirectoryInfo sourceDir = new DirectoryInfo(@sourcePath);
    DirectoryInfo TargetDir = new DirectoryInfo(targetPath);

    foreach (DirectoryInfo diSourceSubDir in sourceDir.GetDirectories())
    {
        DirectoryInfo nextTargetSubDir = TargetDir.CreateSubdirectory(diSourceSubDir.Name);
        CopyDirectory(diSourceSubDir, nextTargetSubDir);
    }
}
4

1 回答 1

0

在此处查看答案:我猜复制解决方案会更干净,而且您基本上在做同样的事情: 递归复制文件

于 2011-10-03T17:26:41.320 回答