Diễn Đàn » Hướng Dẫn Lập trình

Sử dụng phép toán trên bit với các thuộc tính của file

0 trả lời, 542 lượt xem — Trang 1 / 1
Sử dụng phép toán trên bit với các thuộc tính của file
Bạn muốn kiểm tra hay thay đổi thông tin thuộc tính của file.
Sử dụng phép toán trên bit với từ khóa And và Or.
Thuộc tính FileInfo.Attributes (và DirectoryInfo.Attributes) mô tả các thuộc tính của file như archive, system, hidden, read-only, compressed, và encrypted (tham khảo thêm trong tài liệu MSDN). Vì một file có thể có nhiều thuộc tính nên Attributes là một tập các giá trị liệt kê. Để kiểm tra hay thay đổi một thuộc tính đơn lẻ, bạn cần sử dụng phép toán trên bit.
Xét đoạn mã sau:
' Giả sử file này có các thuộc tính: archive, read-only, và encrypted.Dim MyFile As New FileInfo("data.txt")   ' Lệnh này sẽ hiển thị chuỗi "ReadOnly, Archive, Encrypted".Console.WriteLine(MyFile.Attributes.ToString())   ' Điều kiện dưới đây sai, vì còn có các thuộc tính khác' đã được thiết lập.If MyFile.Attributes = FileAttributes.ReadOnly Then    Console.WriteLine("File is read-only.")End If   ' Điều kiện dưới đây đúng, vì nó chỉ lọc ra thuộc tính read-only.If (MyFile.Attributes And FileAttributes.ReadOnly) = _  FileAttributes.ReadOnly Then    Console.WriteLine("File is read-only.")End If
Về bản chất, Attributes được tạo thành (ở dạng nhị phân) bởi một dãy các chữ số 0 và 1, chẳng hạn 00010011. Mỗi chữ số 1 cho biết một thuộc tính đã được thiết lập, mỗi chữ số 0 cho biết một thuộc tính chưa được thiết lập. Khi bạn sử dụng phép And với một giá trị liệt kê, nó sẽ so sánh mỗi chữ số này với mỗi chữ số tương ứng trong giá trị liệt kê. Ví dụ, nếu bạn kết hợp giá trị 00100001 (mô tả thuộc tính archive và read-only) với giá trị liệt kê 00000001 (mô tả thuộc tính read-only), kết quả sẽ là 00000001 (chỉ có được chữ số 1 khi ở cả hai vị trí tương ứng đều là 1). Bạn có thể kiểm tra kết quả này với giá trị liệt kê FileAttributes.ReadOnly bằng dấu “=”.
Tương tự, đoạn mã dưới đây kiểm tra file không có một thuộc tính nào đó:
If Not (MyFile.Attributes And FileAttributes.Compressed) = _  FileAttributes.Compressed Then    Console.WriteLine("File is not compressed.")End If
Khi thiết lập một thuộc tính, bạn cũng phải sử dụng phép toán trên bit. Trong trường hợp này, bạn cần cẩn thận để không vô ý xóa các thuộc tính khác.
' Chỉ thêm thuộc tính read-ony.MyFile.Attributes = MyFile.Attributes Or FileAttributes.ReadOnly   ' Chỉ xóa thuộc tính read-only.MyFile.Attributes = MyFile.Attributes And Not FileAttributes.ReadOnly
Trích từ “Các giải pháp lập trình Visual Basic (tập 1)”
Đăng nhập để trả lời
0