2011-05-15 169 views

回答

4

MSDN's documentation of the DirectoryInfo class說明如何複製一個目錄採取了以下樣品:

using System; 
using System.IO; 

class CopyDir 
{ 
    public static void CopyAll(DirectoryInfo source, DirectoryInfo target) 
    { 
     if (source.FullName.ToLower() == target.FullName.ToLower()) 
     { 
      return; 
     } 

     // Check if the target directory exists, if not, create it. 
     if (Directory.Exists(target.FullName) == false) 
     { 
      Directory.CreateDirectory(target.FullName); 
     } 

     // Copy each file into it's new directory. 
     foreach (FileInfo fi in source.GetFiles()) 
     { 
      Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name); 
      fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true); 
     } 

     // Copy each subdirectory using recursion. 
     foreach (DirectoryInfo diSourceSubDir in source.GetDirectories()) 
     { 
      DirectoryInfo nextTargetSubDir = 
       target.CreateSubdirectory(diSourceSubDir.Name); 
      CopyAll(diSourceSubDir, nextTargetSubDir); 
     } 
    } 

    public static void Main() 
    { 
     string sourceDirectory = @"c:\sourceDirectory"; 
     string targetDirectory = @"c:\targetDirectory"; 

     DirectoryInfo diSource = new DirectoryInfo(sourceDirectory); 
     DirectoryInfo diTarget = new DirectoryInfo(targetDirectory); 

     CopyAll(diSource, diTarget); 
    } 

    // Output will vary based on the contents of the source directory. 
} 
+0

我很驚訝他們沒有使用'string.Compare()' – PostMan 2011-05-15 20:17:15

相關問題