Каталог представляет собой справочник, содержащий сведения о местоположении, размере, дате и времени обновления файлов. Для каждого файла на диске имеется один элемент в определённом каталоге. Один элемент корневого каталога выделяется для метки
65
диска. Для каждого каталога имеется элемент в его родительском каталоге. Кроме того, каждый каталог, за исключением корневого, содержит по одному элементу для специальных имен "." и "..". Эти элементы указывают начало цепочки в FAT соответственно для самого каталога и для его родительского каталога. Такая система описания каталогов обеспечивает возможность сокращенного написания пути к данному файлу, когда он походит через родительский каталог. Здесь особенно важна возможность написания программ, просматривающих все дерево каталогов произвольной структуры.
Каждый элемент каталога имеет длину 32 байта и структуру, представленную в табл. 3.3.
Таблица 3.3
Поля элемента каталога
Длина, байт | Содержимое поля |
8 | Имя файла, каталога или тома |
3 | Расширение имени файла |
1 | Байт атрибутов |
10 | Резервное поле |
2 | Код времени изменения файла |
2 | Код даты изменения файла |
2 | Номер первого кластера файла (подкаталога) |
4 | Размер файла |
Поле имени. Если имя файла содержит меньше 8 символов, то справа оно дополняется пустыми позициями. Пробелы в записи имени файла недопустимы. Однако большинство системных функций позволяют создавать файлы с пробелами в поле имени, которые трудно удалить обычным способом.
Код 00 в первом байте поля имени показывает, что этот элемент каталога ранее не использовался. Так как каталог заполняется последовательно, это означает, что и следующие за ним элементы также не использовались. Это позволяет избежать лишних поисков в каталоге. При стирании файла в первом байте соответствующего элемента каталога записывается код Е5. Все остальные байты элемента не изменяются. Сохраняемая в каталоге и FAT информация после удаления файла позволяет выполнять его восстановление, если занимаемое им ранее дисковое пространство не было выделено другому файлу.
№ бита | Назначение |
0 | Защищенный |
1 | Скрытый |
2 | Системный |
3 | Метка тома |
4 | Каталог |
5 | Архивный |
6 | Не используется |
7 | Не используется |