CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 356

356
Chương 9: File, thư mục, và I/O

public static void CopyDirectory(DirectoryInfo source,

DirectoryInfo destination) {

if (!destination.Exists) {

destination.Create();

}

// Chép tất cả file.

FileInfo[] files = source.GetFiles();

foreach (FileInfo file in files) {

file.CopyTo(Path.Combine(destination.FullName, file.Name));

}

// Xử lý các thư mục con.

DirectoryInfo[] dirs = sourceDir.GetDirectories();

foreach (DirectoryInfo dir in dirs) {

// Lấy thư mục đích.

string destinationDir = Path.Combine(destination.FullName,

dir.Name);

// Gọi đệ quy CopyDirectory().

CopyDirectory(dir, new DirectoryInfo(destinationDir));

}

}

}

Ví dụ sau sử dụng phương thức vừa viết ở trên để chép thư mục, đường dẫn các thư mục được
truyền qua dòng lệnh:

public class CopyDir {

private static void Main(string[] args) {

if (args.Length != 2) {