373
Chương 9: File, thư mục, và I/O
Console.ReadLine();
}
}
Các mã băm được so sánh bằng cách chuyển chúng thành chuỗi. Bạn cũng có thể duyệt qua
mảng và so sánh từng byte. Cách này nhanh hơn một ít, nhưng việc chuyển 20 byte thành
chuỗi không tốn nhiều chi phí nên không cần thiết.
12.
12.
Thao tác trên đ
ng d n file
ườ
ẫ
Thao tác trên đ
ng d n file
ườ
ẫ
Bạn cần lấy một phần đường dẫn file hoặc kiểm tra một đường dẫn file có ở
dạng chuẩn hay không.
Xử lý đường dẫn bằng lớp
System.IO.Path
. Bạn có thể sử dụng
Path.GetFileName
để lấy tên file từ đường dẫn,
Path.ChangeExtension
để thay đổi phần mở rộng của
đường dẫn, và
Path.Combine
để tạo đường dẫn đầy đủ mà không cần quan tâm
thư mục của bạn đã có ký tự phân cách thư mục(\) hay chưa.
Thường khó thao tác với các đường dẫn file vì có vô số cách để mô tả một thư mục. Ví dụ,
bạn có thể sử dụng đường dẫn tuyệt đối (C:\Temp), đường dẫn UNC
(\\MyServer\\MyShare\Temp), hoặc một trong các đường dẫn tương đối (C:\Temp\MyFiles\..\
hay C:\Temp\MyFiles\..\..\Temp).
Cách dễ nhất để xử lý các đường dẫn file là sử dụng các phương thức tĩnh của lớp
Path
để bảo
đảm có thông tin đúng. Ví dụ, đoạn mã sau trích tên file từ một đường dẫn file:
string filename = @"..\System\MyFile.txt";
filename = Path.GetFileName(filename);
// filename bây giờ là "MyFile.txt".
Và đoạn mã sau sử dụng
Path.Combine
để thêm tên file vào đường dẫn thư mục:
string filename = @"..\..\myfile.txt";
string fullPath = @"c:\Temp";
filename = Path.GetFileName(filename);
fullPath = Path.Combine(fullPath, filename);
// fullPath bây giờ là "c:\Temp\myfile.txt".
Cách này có ưu điểm là ký tự phân cách thư mục (\) sẽ tự động được thêm vào đường dẫn nếu
cần thiết.
Lớp
Path
cũng cung cấp các phương thức hữu ích sau đây để thao tác trên thông tin đường
dẫn:
•
ChangeExtension
—thay đổi phần mở rộng của file. Nếu phần mở rộng mới không được
chỉ định, phần mở rộng hiện tại sẽ bị xóa.