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) {