Введение

Именование файлов, используемое в старых версиях DOS и Windows
Имя файла 8.3 (также называемое коротким именем файла или SFN) – это имя, соответствующее соглашению об именовании файлов, использовавшемуся в старых версиях DOS и версиях Microsoft Windows до Windows 95 и Windows NT 3.5. Оно также используется в современных операционных системах Microsoft как альтернативное имя файла длинному имени файла для обеспечения совместимости с устаревшими программами. Соглашение об именовании файлов ограничено файловой системой FAT. Подобные схемы именования файлов 8.3 также существовали в более ранних операционных системах CP/M, TRS 80, Atari, а также в некоторых миникомпьютерах Data General и Digital Equipment Corporation.

Обзор

8.3 Имена файлов ограничены максимум восемью символами (после указания каталога), за которыми может опционально следовать расширение имени файла, состоящее из точки и не более трех дополнительных символов. Для систем, поддерживающих только имена файлов в формате 8.3, избыточные символы игнорируются. Если имя файла не содержит расширения, завершающая точка не имеет значения (то есть, `file` и `file.` эквивалентны). Более того, имена файлов и каталогов в этой системе приводятся к верхнему регистру, хотя системы, использующие стандарт 8.3, обычно не чувствительны к регистру (делая `file` эквивалентным `FILE`). Однако, в операционных системах, не поддерживающих формат 8.3 (таких как большинство современных операционных систем), при доступе к файловым системам 8.3 (включая дискеты, отформатированные в DOS, а также некоторые современные карты памяти и сетевые файловые системы), базовая система может изменять имена файлов внутри, чтобы сохранить регистр и избежать усечения символов в именах, например, в случае VFAT.

Совместимость

Эта устаревшая технология используется в широком спектре продуктов и устройств в качестве стандарта обмена информацией, например, в компактных флеш-картах, используемых в камерах. Длинные имена файлов VFAT LFN, представленные в Windows 95/98/ME, обеспечили обратную совместимость. Однако VFAT LFN, используемый в системах на базе NT (Windows NT/2K/XP), применяет модифицированное 8.3-символьное сокращение. Если имя файла содержит только строчные буквы, или представляет собой комбинацию строчного имени файла и прописного расширения, или наоборот; и не содержит специальных символов, и соответствует ограничениям 8.3, то в Windows NT и более поздних версиях, таких как XP, запись VFAT не создается. Вместо этого два бита в байте 0x0c записи каталога используются для указания, что имя файла следует рассматривать как полностью или частично строчное. В частности, бит 4 указывает на строчное расширение, а бит 3 – на строчное имя файла, что позволяет использовать такие комбинации, но не другие. Это создает проблему обратной совместимости имен файлов со старыми версиями Windows (95, 98, ME), которые в этом случае видят все имена файлов в верхнем регистре и, следовательно, могут изменять регистр файла при его переносе, например, на USB-накопителе. Это может вызвать проблемы для операционных систем, которые не поддерживают регистронезависимое поведение имен файлов, как DOS и Windows. Linux распознает это расширение при чтении; опция mount shortname определяет, используется ли эта функция при записи. Для MS DOS можно использовать DOSLFN от Хенрика Хафтмана.