Страница 7 из 41
Раздел 2. Работа с каталогами диска. Каждый диск имеет один корневой каталог, с которого начинается поиск всех остальных каталогов. Корневой каталог может содержать элементы, указывающие на подкаталоги, которые в свою очередь могут содержать ссылки на другие подкаталоги, образуя древовидную структуру каталогов. Корневой каталог всегда расположен в опреде- ленных секторах диска; подкаталоги хранятся как обычные дисковые файлы, поэтому они могут быть расположены в любом месте диска. Отметим, что фиксированный диск может содержать до четырех корне- вых каталогов, если он разбит на разделы, хотя MS DOS "видит" только один корневой каталог. Каталоги могут иметь различные размеры, в зависимости от размера диска и его разбиения на разде- лы. В следующей таблице приведены размеры и позиции корневых каталогов для разных типов дисков:
Тип диска Размер каталога Число элементов Начальный сектор
дискета 160K 4 сектора 64 9 дискета 180K 4 сектора 64 9 дискета 320K 7 секторов 112 15 дискета 360K 7 секторов 112 15 дискета 1.2M 14 секторов 224 29 жесткий 10M ----------переменные------------ жесткий 20M ----------переменные------------
В зависимости от разбиения на разделы фиксированный диск может иметь различные размеры каталога и номер начального сектора. Если весь диск отведен для MS DOS, то на XT и AT под корневой каталог отводится 32 сектора, что позволяет иметь в нем 512 элементов. Как корневой каталог, так и подкаталоги, используют 32 байта для хранения информации об одном файле, независимо от типа диска. Таким образом в каждом секторе может храниться информация о 16-ти элементах каталога. Каждое 32-байтное поле разбито следующим образом:
байты 0-7 Имя файла 8-10 Расширение файла 11 Атрибут файла 12-21 Зарезервировано 22-23 Время последнего доступа к файлу 24-25 Дата последнего доступа к файлу 26-27 Начальный кластер 28-31 Размер файла
Точка между именем файла и его 3-байтным расширением не хранится. Все поля выравнены на левую границу, а пустые байты заполняются пробелами (код ASCII 32). Атрибут файла определяет является ли файл спрятанным, защищенным от записи и т.д. [5.2.6]. Он опред- ляет также специальные элементы каталога, такие как подкаталоги или метка тома. Информация о времени и дате упакована, поэтому для чтения этих значений требуются битовые операции [5.2.5]. Начальный кластер указывает на позицию в таблице размещения файлов (FAT), которая обсуждалась в [5.1.1]. FAT хранит информа- цию о свободном пространстве на диске, а также отводит сектора
при записи файла. FAT отводит дисковое пространство порциями, большими чем 1 сектор, которые называются кластерами. Файл распо- ложен в цепочке кластеров и FAT содержит соответствующую цепочку элементов, указывающих, где эти кластеры расположены на диске.
Каталог должен указывать на начальное звено цепочки элементов файла в FAT, и эта информация содержится в поле начальный номер кластера. Поскольку файл обычно занимает последний отведенный ему кластер не целиком, то поле размер файла хранит точную длину файла в байтах.
|