Введение
Именование файлов, используемое в старых версиях 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.
An 8.3 filename (also called a short filename or SFN) is one that obeys the filename convention used by old versions of DOS and versions of Microsoft Windows prior to Windows 95 and Windows NT 3.5. It is also used in modern Microsoft operating systems as an alternate filename to the long filename, to provide compatibility with legacy programs. The filename convention is limited by the FAT file system. Similar 8.3 file naming schemes have also existed on earlier CP/M, TRS 80, Atari, and some Data General and Digital Equipment Corporation minicomputer operating systems.
Обзор
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 от Хенрика Хафтмана.