Thủ thuật đặt thuộc tính (attribute) cho file và folder trong C#.

Như đã biết, .NET cung cấp cho chúng ta 2 lớp FileInfo và DirectoryInfo dùng để quản lý thông tin của tập tin và thư mục.

 Hai lớp này cung cấp rất nhiều thông tin về file và folder như : tên, kích cỡ, ngày tạo, ngày sửa cuối,… Trong số đó có một thuộc tính đáng chú ý là Attributes.

Thuộc tính này cho phép đọc và gán các attribute (thuộc tính) cho file và folder như : read-only, hidden, archive, system,… Vì một file có thể có nhiều thuộc tính nên Attributes có thể nhận một hoặc nhiều các giá trị nằm trong enum FileAttributes :

–  ReadOnly : chỉ đọc

–  Hidden : ẩn

–  System : hệ thống

–  Directory : cho biết đây là thư mục

–  Archive : được lưu trữ để sao lưu hoặc di chuyển

–  Device : lưu trữ để sử dụng sau

–  Normal : file bình thường

–  Temporary : file tạm

–  Compressed : file được nén bởi hệ thống

–  Offline : file offline, nội dung file chưa sẵn sàng để truy cập

Ø  Encrypted : file được mã hóa

Bạn cần biết rằng 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 không được thiết lập. Để kiểm tra hay thay đổi một thuộc tính đơn lẻ, bạn cần sử dụng các phép toán trên bit : AND (&), OR (|) và đảo bit (~). Chúng ta có thể thực hiện các phép toán AND, OR trên các giá trị này nhằm thay đổi giá trị của Attributes

Giả sử file sau đây có Attributes là Archive (có mã là 00100000, bit 1 đầu tiên cho biết Archive đang bật) :

FileInfo file = new FileInfo(“C:\test.txt”);

Để kiểm tra xem có thuộc tính Read-only hay không, ta làm như sau :

bool IsReadOnly = (file.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly;

Để thêm thuộc tính Read-only (mã 00000001) :

file.Attributes = file.Attributes | FileAttributes.ReadOnly;

00100001 | 00000010 = 00100001 (bit 1 cuối cùng cho biết Read-only được bật)

Để xóa thuộc tính Read-only :

file.Attributes = file.Attributes & ~FileAttributes.Hidden;

00100001 & ~(00000001) = 00100001 & 11111110 = 00100000 (chỉ còn Archive)

Đặt một thuộc tính duy nhất, chẳng hạn Hidden :

file.Attributes = FileAttributes.Hidden;

Xóa hết các thuộc tính :

file.Attributes = FileAttributes.Normal;

Chúc các bạn thành công !

Thủ thuật đặt thuộc tính (attribute) cho file và folder trong C#.
5 (100%) 12 votes

Add Comment