Viết tắt của RDET, là bảng thư mục gốc.
- Là nơi lưu trữ thuộc tính của tất cả các tập tin/thư mục trên thư mục gốc.
- Bảng thư mục gốc sẽ được tổ chức thành nhiều mục (entry) có cùng kích thước 32 byte.
- Mỗi entry sẽ lưu trữ thuộc tính cho một tập tin/thư mục.
Entry Status
Byte đầu tiên của mỗi entry cho biết trạng thái của entry:
- Giá trị
0x00: entry trống, có thể được dùng để lưu thuộc tính cho tập tin/thư mục mới. - Giá trị
0xE5: tập tin/thư mục chiếm entry này đã bị xóa, có thể được dùng để lưu thuộc tính cho tập tin/thư mục mới. - Giá trị
0x2E: entry đại diện cho thư mục hiện tại và thư mục cha (.và..). - Giá trị khác: entry đang chứa thuộc tính của tập tin/thư mục nào đó. Khi đó, giá trị này sẽ là tên của tập tin/thư mục đó.
Entry Structure
Để lưu được tên tập tin/thư mục dài, hệ thống tập tin FAT qui định thêm một entry phụ chỉ chứa tên tập tin. Đây là tính năng hỗ trợ tên dài (Long filename support - LFNs).
Một RDET có thể có nhiều entry chính và phụ xen lẫn kết hợp với nhau. Các entry chính sẽ xếp sau các entry phụ:

Cấu trúc của một entry chính:
| Offset | Độ dài | Nội dung |
|---|---|---|
0x0 | 8 | Tên chính của tập tin |
0x8 | 3 | Tên mở rộng (extension) |
0xB | 1 | Thuộc tính của tập tin, nếu có giá trị là 0x0F thì entry này sử dụng cho LFNs |
0xC | 1 | Không dùng |
0xD | 3 | Giờ tạo |
0x10 | 2 | Ngày tạo |
0x12 | 2 | Ngày truy cập gần nhất |
0x14 | 2 | Cluster bắt đầu (2 byte cao) |
0x16 | 2 | Giờ cập nhật tập tin |
0x18 | 2 | Ngày cập nhật tập tin |
0x1A | 2 | Cluster bắt đầu (2 byte thấp) |
0x1C | 4 | Kích thước tập tin |
Các thông tin cần chú ý:
- Tên tập tin được lưu trong 11 byte đầu tiên. Với 8 byte được dùng để lưu tên chính hoặc tên ngắn dưới dạng mã ASCII, 3 byte còn lại được dùng để lưu đuôi mở rộng (cũng có dạng mã ASCII).
- Thông tin ở offset
0xClà cluster bắt đầu dành cho FAT32. Còn ở offset0x1Alà cluster bắt đầu dành cho FAT12/FAT16. - Thuộc tính của tập tin có thể là sự kết hợp của nhiều giá trị thuộc tính khác nhau. Ví dụ
0x21là sự kết hợp của0x01và0x20, tương ứng với thuộc tính “chỉ đọc” và thuộc tính “lưu trữ”. Các loại thuộc tính của tập tin:
| Mask | Mô tả |
|---|---|
0x01 | Read only |
0x02 | Hidden |
0x04 | System |
0x08 | Volume label |
0x10 | Sub directory |
0x20 | Archive |
0x40 | Device (internal use only, never found on disk) |
0x80 | Unused |
Cấu trúc của entry phụ:
| Offset | Độ dài | Nội dung |
|---|---|---|
0x00 | 1 | Số thứ tự của entry (bắt đầu từ 1) |
0x01 | 10 | Các ký tự của tên file (5 ký tự UTF-16) |
0x0B | 1 | Các thuộc tính (luôn có giá trị là 0x0F) |
0x0C | 1 | Dành riêng, luôn có giá trị là 0x00 |
0x0D | 1 | Checksum của tên file MS-DOS |
0x0E | 12 | Các ký tự của tên file (6 ký tự UTF-16) |
0x1A | 2 | Cluster đầu tiên (luôn có giá trị là 0x0000) |
0x1C | 4 | Các ký tự của tên file (2 ký tự UTF-16) |
Tip
- Để phân biệt entry chính và entry phụ thì ta cần nhìn vào vị trí
B(11 theo cơ số thập phân). Nếu giá trị này là0Fthì ta biết đây là entry phụ. Ngược lại thì là entry chính. Nếu là entry chính thì giá trị sẽ là thuộc tính của tập tin hoặc thư mục.- Khi đọc entry phụ, ta chỉ cần đọc các offset
0x1(10 byte),0xE(12 byte) và0x1C(4 byte) để lấy ra tên của entry.