Справочник программиста на персональном компьютере фирмы IBM. Дисковые накопители
Страница 7. Работа с каталогами диска


     Раздел 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, и эта информация  содержится  в поле начальный номер
кластера. Поскольку файл обычно занимает последний отведенный ему
кластер не целиком,  то  поле  размер  файла  хранит точную длину
файла в байтах.

 
« Предыдущая статья   Следующая статья »