0

RAMDisk を作成するクラス (クラス ライブラリに基づく) を作成していますが、揮発性のため、X 分ごとに RAMDisk の内容を物理的な場所にバックアップする必要があります。明らかに .NET ファイルのコピー方法が機能しないため、CopyFileEx の使用が提案されました。

ただし、CopyFileEx を使用しようとすると、何らかの理由で無効な引数エラーが発生します。私は、この関数で残りの .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 に答える