2011-08-12 12 views
0

RAMDiskを作成するクラス(クラスライブラリに基づく)を作成しています.X分ごとに、RAMDiskの内容をボラティリティのために物理的な場所にバックアップする必要があります。 CopyFileExを使用することを推奨しました。明らかに.NETファイルのコピー方法は機能しません。C#NET DirectoryCopy関数のVSS

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); 
    } 
} 

答えて

0

ここで答えをチェックアウト:私はそのコピーのソリューションはきれいだろう推測していると、あなたは、本質的に同じことをやっている:直接文字列表現対のFileInfoを使用して参照してほとんど Copying Files Recursively

+0

をCopyFileEx引数としてファイルの。 – crlanglois

関連する問題