Поддержка длинных имен файлов.
Начиная с WIN95 и дальше, ОС поддерживает длинные имена файлов до 255 символов, также национальные алфавиты локализованных ОС.
В MSDOS, начиная с версии 4.0, была 866 кодовая таблица. В Widows появилась Win – 1251, которая хранит символы не в одном, а в двух байтах (Unicode) и сейчас структура этого кода доводится до четырех байтов, в результате того, что символики не хватает.
Используя FAT необходимо было хранить имена файлов таким образом, чтобы все системные утилиты (сервисные программы) видели их, и в то же время пользователь мог бы работать с длинным именем файла.
Была разработана структура FAT VFAT, которая работает с длинными и короткими именами и обращение к файлу возможно и по длинному и по короткому имени.
У VFAT появились дополнительные требования.
Короткое имя файла должно удовлетворять следующим требованиям:
1) не более восьми символов в имени и трех на расширение;
2) в имени используются английские буквы, допустимо использование русских букв при наличии кодовой таблицы. Символы, допустимые в именах файлов: $, %, ^, ~, ,, @, !, (, ), {, }, #, &, _, -.
3) полный путь к файлу не больше, чем 67 символов, а 68-ой символ должен быть ‘\0’;
4) VFAT при преобразовании изменяет строчные буквы на прописные;
Ни одна из системных программ не использует атрибуты файла одновременно, поэтому если все 4 бита (только для чтения, скрытый, системный и метка Тома) установлены в единицу, то данный элемент FAT – таблицы используются для хранения длинного имени файла.
VFAT использует несколько записей FAT – таблицы для хранения длинного имени файла следующим образом:
в FAT есть некоторая i-я запись, в которой хранится вся структура, предназначенная для короткого имени, которое связано с длинным.
В (i+1) лежит первая запись длинного имени, в (i+2) – вторая и т.д.:
|
Требования к длинному имени:
1) у каждого длинного имени есть связанное с ним короткое;
2) длинное имя содержит последовательность меньше, чем в 255 символов;
3) добавились следующие символы, которые можно использовать для длинного имени: ., ,, ,[], =,+;
4) проблемы в начале и в конце имени убираются автоматически;
5) полный путь к файлу стал равен 260 символов плюс символ ‘\0’;
6) в имени файла допустимы строчные символы.
Теперь структура каждой записи такова:
1б – порядковый номер записи;
10б – символы длинного имени;
1б – атрибут длинного имени;
1б – тип (пишется какой-то код, который идентифицирует элемент FAT-таблицы как элемент длинного имени). Это нужно чтобы при работе только с коротким именем остальные записи пропускались.
1б – контрольная сумма;
12б – продолжаются символы имени;
2б – либо ничего, либо записаны нули;
4б – символы имени.
Контрольная сумма генерируется по контрольному имени, и если она изменилась (вне ОС Windows95, 98 …), то это значит, что длинное имя не имеет никакого смысла.
Дата добавления: 2016-07-18; просмотров: 2018;