Основы современных компьютерных технологий

         

Каталоги


Каталог представляет собой справочник, содержащий сведения о местоположении, размере, дате и времени обновления файлов. Для каждого файла на диске имеется один элемент в определённом каталоге. Один элемент корневого каталога выделяется для метки

65

диска. Для каждого каталога имеется элемент в его родительском каталоге. Кроме того, каждый каталог, за исключением корневого, содержит по одному элементу для специальных имен "." и "..". Эти элементы указывают начало цепочки в FAT соответственно для самого каталога и для его родительского каталога. Такая система описания каталогов обеспечивает возможность сокращенного написания пути к данному файлу, когда он походит через родительский каталог. Здесь особенно важна возможность написания программ, просматривающих все дерево каталогов произвольной структуры.

Каждый элемент каталога имеет длину 32 байта и структуру, представленную в табл. 3.3.

Таблица 3.3

Поля элемента каталога



Длина, байт Содержимое поля
8 Имя файла, каталога или тома
3 Расширение имени файла
1 Байт атрибутов
10 Резервное поле
2 Код времени изменения файла
2 Код даты изменения файла
2 Номер первого кластера файла (подкаталога)
4 Размер файла

Поле имени. Если имя файла содержит меньше 8 символов, то справа оно дополняется пустыми позициями. Пробелы в записи имени файла недопустимы. Однако большинство системных функций позволяют создавать файлы с пробелами в поле имени, которые трудно удалить обычным способом.

Код 00 в первом байте поля имени показывает, что этот элемент каталога ранее не использовался. Так как каталог заполняется последовательно, это означает, что и следующие за ним элементы также не использовались. Это позволяет избежать лишних поисков в каталоге. При стирании файла в первом байте соответствующего элемента каталога записывается код Е5. Все остальные байты элемента не изменяются. Сохраняемая в каталоге и FAT информация после удаления файла позволяет выполнять его восстановление, если занимаемое им ранее дисковое пространство не было выделено другому файлу.


Код 2Е (символ ".") в первом байте показывает, что элемент описывает сам каталог. Если и во втором байте содержится код 2Е, то элемент описывает родительский каталог ("..").

Расширение имени. Если элемент каталога описывает файл, то это поле может быть и пустым. В противном случае это поле используется, когда в элементе корневого каталога указывается метка тома.

66

Атрибуты файла. Каждый бит этого поля задает определенный атрибут, указанный в табл. 3.4.

Таблица 3.4

Состав байта атрибутов

№ бита Назначение
0 Защищенный
1 Скрытый
2 Системный
3 Метка тома
4 Каталог
5 Архивный
6 Не используется
7 Не используется
Поле время". Его содержимое рассматривается как целое число без знака, полученное по следующей формуле: часы ? 2048+минуты ? 32+секунды/2.

Для выполнения обратного преобразования следует разделить содержимое поля времени на 2048, частное от деления даст нам часы. Деление остатка на 32 дает нам частное, равное числу минут, а полученный остаток при умножении его на 2 дает секунды.

Поле "дата". Содержимое его рассматривается как целое число без знака, полученное по следующей формуле: (год-1980) ? 512+месяцх 32+день.

По этой формуле календарь поддерживается с 1980 года по 2108 год (из-за ограниченности ширины поля даты).

Номер первого кластера. Содержимое этого поля одновременно служит указателем к первому кластеру файла в поле данных и к первому элементу в цепочке FAT. Для файлов, которым не выделено места на диске, и для метки тома это поле содержит OOOOh.

67

65 :: 66 :: 67 :: Содержание


Содержание раздела