Di chuyển thư mục với lớp DirectoryInfo sử dụng C#
Khi sử dụng thư viện System.IO , bạn có tạo thư mục bằng cách sử dụng một thể hiện (hay còn gọi là đối tượng, tiếng anh là instance) của lớp DirectoryInfo hoặc sử dụng lớp tiện ích Directory. Trong bài viết này sẽ hướng dẫn các bạn Di chuyển thư mục với lớp DirectoryInfo bằng cách sử dụng của phương thức MoveTo với 1 thể hiện của lớp DirectoryInfo trong ngôn ngữ lập trình C#.
Lớp DirectoryInfo định nghĩa phương thức MoveTo với cú pháp như sau:
+ public void MoveTo (string destDirName); : Trong đó tham số destDirName chính là đường dẫn và tên của thư mục mà bạn muốn chuỷển đến. Trong đó thư mục được chuyển đến hay còn gọi thư mục đích không được nằm ở ổ cứng khác so với thư mục cần di chuyển. Thư mục cần di chuyển và thư mục đích không được phép giống nhau.
Giả sử ta có thư mục như sau “E:\hoctoantap.com\Origin Directory” và ta cần di chuyển thư mục này tới thư muc “E:\tintoantap.com” như trong hình
Khi đó code di chuyển thư mục như sau:
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// Demo di chuyển thư mục static void Main(string[] args) { // 1. Đường dẫn của thư mục cần di chuyển string originPath = @"E:\hoctoantap.com\Origin Directory"; // 2. Khai báo đối tượng DirectoryInfo cho đối tượng cần di chuyển DirectoryInfo info = new DirectoryInfo(originPath); // 3. Xác định đường dẫn thư mục sẽ di chuyển đến // Trong đó "E:\tintoantap.com" là thư mục sẽ chứa thư mục cần di chuyển sau khi gọi hàm MoveTo // Thư mục "Origin Directory" được chuyển tên thành thư mục đích "Destination Directory" string destinationPath = Path.Combine(@"E:\tintoantap.com","Destination Directory"); // 4. Gọi hàm MoveTo để thực sự chuyển thư mục "E:\hoctoantap.com\Origin Directory" // tới thư mục E:\tintoantap.com\Destination Directory" info.MoveTo(destinationPath); Console.WriteLine("Di chuyen thu muc thanh cong"); Console.ReadLine(); } |
Note:
+ Ở comment “4”: Bạn có thể nhận được “Could not find a part of the path ‘E:\hoctoantap.com\Origin Directory'”. khi gọi phương thức MoveTo nếu đường dẫn originPath của bạn không tồn tại.
Output:
Để tránh lỗi “DirectoryNotFoundException was unhandled” với thư mục cần di chuyển không tồn tại (“Could not find a part of the path ‘E:\hoctoantap.com\Origin Directory'”) như ở bên trên bạn có thể sử dụng thuộc tính Exists để check tồn tại trước khi thực hiện.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
// Demo di chuyển thư mục static void Main(string[] args) { // 1. Đường dẫn của thư mục cần di chuyển string originPath = @"E:\hoctoantap.com\Origin Directory"; // 2. Khai báo đối tượng DirectoryInfo cho đối tượng cần di chuyển DirectoryInfo info = new DirectoryInfo(originPath); // 3. Xác định đường dẫn thư mục sẽ di chuyển đến // Trong đó "E:\tintoantap.com" là thư mục sẽ chứa thư mục cần di chuyển sau khi gọi hàm MoveTo // Thư mục "Origin Directory" được chuyển tên thành thư mục đích "Destination Directory" string destinationPath = Path.Combine(@"E:\tintoantap.com", "Destination Directory"); // Kiểm tra thư mục cần di chuyển tôn tại không if (info.Exists) { // 4. Gọi hàm MoveTo để thực sự chuyển thư mục "E:\hoctoantap.com\Origin Directory" // tới thư mục E:\tintoantap.com\Destination Directory" info.MoveTo(destinationPath); // 5. Thông báo cho người dùng thư mục di chuyển thành công Console.WriteLine("Di chuyen thu muc thanh cong"); } else { // 5. Thông báo cho người dùng loi khi di chuyen thu muc Console.WriteLine("Khong ton tai thu muc de di chuyen"); } Console.ReadLine(); } |
Chú ý : Khi lập trình với thư mục hoặc file trong C# bạn nên tận dụng thuộc tính Exists để kiểm tra sự tồn tại thay vì sử dụng try catch để tóm exception.
Download Source
Bài viết được hình thành mong muốn trao đổi và chia sẻ kiến thức về ngôn ngữ lập trình C#. Trong quá trình đăng, bài viết sẽ không thể tránh được những thông tin sai sót hoặc các bạn có thông tin cần trao đổi, chia sẻ các thông tin vui lòng comment bên dưới hoặc gửi vào email [email protected] Xin chân thành cảm ơn.