Khi copy toàn bộ nội dung thư mục, quan trọng phải copy cả sub directories và files liên quan.
Ví dụ
Xét thư mục nguồn demo có sub directories và files như sau:


Thư mục đích demo ban đầu rỗng:

using System;
using System.IO;
namespace DemoApplication
{
class Program
{
public static void Main()
{
string sourceDirectory = @"d:\DemoSourceDirectory";
string targetDirectory = @"d:\DemoTargetDirectory";
DirectoryInfo sourceDircetory = new DirectoryInfo(sourceDirectory);
DirectoryInfo targetDircetory = new DirectoryInfo(targetDirectory);
CopyAll(sourceDircetory, targetDircetory);
Console.ReadLine();
}
public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
{
Directory.CreateDirectory(target.FullName);
foreach (FileInfo fi in source.GetFiles())
{
Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);
fi.CopyTo(Path.Combine(target.FullName, fi.Name), true);
}
foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
{
DirectoryInfo nextTargetSubDir = target.CreateSubdirectory(diSourceSubDir.Name);
CopyAll(diSourceSubDir, nextTargetSubDir);
}
}
}
}
Kết quả
Kết quả sau khi copy:

