Ассемблер для Windows



         

Кроме указанных характеристик - часть 2


СмещениеРазмерСодержимое

(+0) 8Имя файла или каталога, выровненное на левую границу и дополненное пробелами.

(+8) 3Расширение имени файла, выровненное на левую границу и дополненное пробелами.

(+11)1Атрибут файла.

(+12)2Время доступа.

(+14)2Время создания.

(+16)2Дата создания.

(+18)2Дата доступа.

(+20)2Два старших байта номера первого кластера файла.

(+22)2Время модификации файла.

(+24)2Дата модификации файла.

(+26)2Два младших байта номера первого кластера файла.

(+28)4Размер файла в байтах.

Как видите, все байты 32-байтной записи каталога теперь заняты. Лишний раз убеждаешься в первоначальной непродуманности файловой системы MS DOS, Это касается, в частности, длины файла. Как можно заметить, на длину файла отводится всего 4 байта. А как найти длину файла, если на нее требуется более 4 байт? Разумеется, в этом случае следует считать, что в каталоге хранятся младшие байты длины, а полную длину легко определить, обратившись к таблице размещения файлов. Но, согласитесь, что это уже явная недоработка. Странно также выглядит функция GetFileSize, которая возвращает четыре младших байта длины файла, старшие же байты возвращаются во втором параметре функции.

Иное дело в файловой системе NTFS, поддерживаемой Windows NT, изначально планируемой для работы с файлами больших размеров. Здесь для индексации кластеров используются 64-битные поля.

33 В начале Windows 95 работала с 16-битной FAT, но длинные имена уже поддерживала.

34

FAT (File Allocation Table) - один из элементов, на котором базируются файловые системы MS DOS и Windows 9х. По этой причине часто такие файловые системы называют FAT системами.




Содержание  Назад  Вперед