Введення у файлові системи, страница 31

1 Поле обробляється тільки у файловій системі FAT32. У системах FAT 12 і FAT 16 поле вважається зарезервованим і містить значення 0.

На використання ASCII-символів у «короткому імені» накладається ряд обмежень:

• не можна використовувати символи з кодами менше 20h (за винятком коду 05h на початку імені файлу);

• не можна використовувати символи з кодами 22h, 2Ah, 2Bh, 2Ch, 2Eh, 2Fh, 3Ah, 3Bh, 3Ch, 3Dh, 3Eh, 3Fh, 5Bh, 5Ch, 5Dh, 7Ch;

• не можна використовувати символ пробілу (код 20h) на початку імені файлу.

Крім того перший байт «короткого імені» (DIR_Name[0]) виконує функції ознаки «зайнятості» елементу каталогу:

• якщо DIR_Name[0] = E5h, то елемент каталогу вільний і його можна використовувати при створенні нового файлу;

• якщо DIR_Name[0] = 00h, то елемент каталогу вільний і є початком «чистої» області каталога і після нього немає жодного використаного елемента;

• якщо DIR_Name[0] = 05h, то в цьому байті знаходиться ASCII-символ з кодом 0E5h (символ KANJI японського алфавіту).

Представлення довгого імені файлу [3]. Операційні системи, починаючи з Windows 95, дозволяють на додаток до «короткого імені» файлу привласнювати довге ім'я (Long File Name, LFN), яке містить до 255 символів у кодуванні Unicode, при якому кожен символ кодується 2 байтами. Довгі імена файлів (LFN) зберігаються в спеціальних записах каталогу, у яких байт атрибутів DIR_Attr дорівнює 0Fh. Для будь-якого файлу підкаталогу чи безпосередньо перед єдиним записом каталогу з його ім'ям у форматі 8.3 знаходиться група з одного чи декількох записів, які представляють довге ім'я. Кожен такий запис містить частину довгого імені файлу, яка записується в розрізаному на частині вигляді в порожні елементи каталогу. Структура елементів каталогу для запису довгих імен файлів представлено в таблиці 4.6.

З обліком того, що в елементі каталогу міститься 26 вільних байт і один символ у Unicode представляється 2 байтами, ми можемо записати фрагмент імені в 13 символів. Невикористована ділянка останнього фрагменту заповнюється кодами 0FFFFh.

Таблиця 4.6 Елемент каталогу для запису довгих імен файлу

Найменування елементу

Зсув

Розмір, байт

Опис

DIR.Counter

00h

1

Номер фрагмента імені файлу

DIR_LName1

01h

10

Перша ділянка фрагмента імені файлу

DIR_Attr

0Bh

1

Атрибути файлу

DIR_Flags

0Ch

1

Байт прапорів

DIR_ChkSum

0Dh

1

Контрольна сума короткого імені

DIR_LName2

0Eh

12

Друга ділянка фрагмента імені файлу

DIR_First

1Ah

2

Номер першого кластера (дорівнює 0)

DIR_LName3

1Ch

4

Третя ділянка фрагмента імені файлу