Friday, October 20, 2017

Chép, chuyển, xóa file hay thư mục trong C#

Khi xây dựng một ứng dụng C#, có thể bạn gặp trường hợp cần chép, chuyển, xóa một file hay thư mục. Bài viết này sẽ gợi ý cho bạn phải giải quyết như thế nào.
Giải pháp của chúng ta là: Tạo đối tượng System.IO.FileInfo cho file hay đối tượng System.IO.DirectoryInfo cho thư mục, truyền đường dẫn cho phương thức khởi dựng. Sử dụng các phương thức của đối tượng để chép, chuyển, xóa.
Các lớp FileInfo và DirectoryInfo cung cấp nhiều phương thức dùng để thao tác trên file và thư mục.  2 bảng sẽ trình bày các phương thức của lớp FileInfo và DirectoryInfo.

Các phương thức dùng để thao tác đối tượng FileInfo
Phương thứcMô tả
CopyToChép một file sang đường dẫn mới, tên file được chỉ định trong đối số. Nó cũng trả về một đối tượng FileInfo mô tả file mới được chép. Bạn có thể truyền thêm một thông số tùy chọn có giá trị true để cho phép chép đè.
Create và CreateTextCreate tạo file được chỉ định và trả về một đối tượng FileStream dùng để ghi ra file. CreateText cũng thực hiện như thế, nhưng trả về đối tượng StreamWriter gói lấy stream.
Open, OpenRead, OpenText, và OpenWriteMở một file (nếu nó tồn tại). OpenRead và OpenText mở file trong chế độ chỉ-đọc, trả về một đối tượng FileStream hay StreamReader. OpenWrite mở file trong chế độ chỉ-ghi, trả về một đối tượng FileStream.
DeleteXóa file (nếu nó tồn tại).
MoveToChuyển một file đến đường dẫn mới, tên file được chỉ định trong đối số. MoveTo cũng được sử dụng để đổi tên một file mà không chuyển chỗ.

Các phương thức dùng để thao tác đối tượng DirectoryInfo
Phương thứcMô tả
CreateTạo thư mục được chỉ định. Nếu đường dẫn chỉ định nhiều thư mục chưa tồn tại, tất cả sẽ được tạo một lượt.
CreateSubdirectoryTạo một thư mục với tên cụ thể bên trong thư mục được mô tả bởi đối tượng DirectoryInfo. Nó cũng trả về một đối tượng DirectoryInfo mô tả thư mục con.
DeleteXóa một thư mục (nếu nó tồn tại). Nếu muốn xóa một thư mục có chứa các thư mục khác, bạn phải sử dụng phương thức nạp chồng Delete chấp nhận một thông số có tên là recursive và thiết lập nó là true.
MoveToChuyển một thư mục đến đường dẫn mới. MoveTo có thể được sử dụng để đổi tên một thư mục mà không chuyển chỗ.

Lớp DirectoryInfo không có phương thức nào dùng để sao chép thư mục. Tuy nhiên, bạn có thể dễ dàng viết được một phương thức như thế dựa trên kỹ thuật đệ quy và phương thức CopyTo của đối tượng FileInfo:


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:



Hy vọng bài viết sẽ giúp các bạn hiểu rõ hơn về cách làm việc với file hay thư mục trong C#
Để hiểu rõ hơn, các bạn có thể vào đọc ebook ở địa chỉ sau:
http://www.hoang.name.vn/2015/12/giao-trinh-cshap-7-bo-ebook-cshap-tieng-viet.html

No comments:

Post a Comment