Поддержка длинных имен файлов ( LFN ) — это обратно совместимое расширение Microsoft схемы именования файлов 8.3 (короткое имя файла), используемой в DOS . Длинные имена файлов могут быть более информативными, включая более длинные расширения имен файлов , такие как .jpeg
, .tiff
, .html
, и .xhtml
которые распространены в других операционных системах, а не специальные сокращенные имена, такие как .jpg
, .tif
, .htm
или .xht
. Этот стандарт является общим для файловых систем таблицы размещения файлов (FAT) с момента его первой реализации в Windows NT 3.5 в 1994 году.
Чтобы обеспечить совместимость со старыми операционными системами, Microsoft разработала метод создания имени файла 8.3 из длинного имени файла (например, Microsoft.txt
to MICROS~1.TXT
) и связывания его с файлом.
Microsoft реализовала поддержку LFN в файловой системе FAT, используя записи скрытого каталога типа метки тома для хранения более длинных имен; эта схема известна как VFAT и была выбрана для совместимости, поскольку метки томов обычно игнорируются программами и компонентами операционной системы (ОС). Программы, работающие в старых ОС, по-прежнему могут получать доступ к коротким именам файлов, в то время как новые ОС и программы, поддерживающие LFN, могут использовать более длинные имена.
Когда поддержка LFN была впервые введена в операционную систему на базе DOS в виде Windows 95 , это вызвало некоторые проблемы для старых программ. Например, программа DOS, выполняющая операции с каталогами на уровне секторов, когда Windows находилась в режиме DOS, могла уничтожить информацию о длинных именах файлов, поэтому по умолчанию доступ на уровне секторов к жестким дискам в этом режиме был запрещен.
При загрузке обычной DOS длинные имена файлов не отображаются, если не установлен драйвер VFAT LFN. Microsoft не добавляла поддержку LFN во многие свои старые программы, включая File Manager , файловый менеджер Windows 3.1x (Windows для рабочих групп), который устарел из-за новой оболочки операционной системы Windows Explorer . Windows NT поддерживала LFN в файловых системах NTFS, начиная с выпуска NT 3.1, и все ее утилиты, включая диспетчер файлов, были обновлены для поддержки LFN. В NT 3.5 добавлена поддержка FAT LFN при подготовке к Windows 95. Однако версия файлового менеджера для Windows 95 пришла из Windows for Workgroups 3.11.
OS/2 хранит LFN для файловых систем FAT в .LONGNAME
расширенных атрибутах , которые несовместимы с реализацией Microsoft и видны только инструментам, поддерживающим стандарт OS/2. Многие API, обеспечивающие доступ к файлам по имени пути, не могут видеть новые, более длинные имена без поддерживающего драйвера.
Поскольку реализация FAT LFN построена поверх более старой, более ограниченной системы именования, возникают неизбежные осложнения, например, если предпринимается попытка создать слишком много файлов с одинаковыми первыми шестью буквами. [1] Кроме того, чаще возникают проблемы с созданием файлов или папок в корневом каталоге, поскольку FAT12 и FAT16 выделяют место только для 512 записей корневого каталога на жестких дисках. Поскольку длинные имена файлов используют более одной записи каталога, эта проблема может возникнуть, если в корневом каталоге имеется менее 512 файлов или папок. [2] Имеется место только для 24 длинных имен файлов максимальной длины (512/(1+20)). Эта проблема не существует для томов FAT32 .
Система длинных имен файлов допускает максимальную длину 255 символов UCS-2 [3] [4] , включая пробелы и небуквенно-цифровые символы (за исключением следующих символов, которые имеют особое значение в интерпретаторе команд COMMAND.COM или ядре операционной системы: \ / : * ? " < > |
). Это достигается путем объединения до 20 записей каталога по 13 2-байтовых символов Юникода каждая. [4] Максимальная длина пути составляет 256 символов, включая все родительские каталоги и имя файла. Длинное имя файла из 255 символов в смешанном регистре возможно только для файлов или папок без подпапок в корневой папке любого диска.
Хотя поддержка длинных имен файлов позволяет использовать более длинные имена файлов и каталогов, в системах на базе DOS абсолютный путь к файлу, созданный из связанных эквивалентов коротких имен файлов и каталогов, по-прежнему представлен во внутренней структуре данных, называемой текущей структурой каталогов (CDS), [ 5] [6] [7] [8] который накладывает ограничение на 66 символов на (короткое) имя пути и тем самым косвенно ограничивает глубину пути максимум до 33 уровней (считая корневой каталог и предполагая только одиночный путь). названия букв). (Это ограничение конструкции не присутствовало в более старых версиях DR DOS (до обновлений DR DOS 6.0 от ноября 1991 г.), которые все еще использовали внутреннее представление относительного пути, [7] [8] [9] однако из-за своих внутренних различий эти версии несовместимы с существующими дополнительными драйверами LFN.) Операционные системы, не основанные на DOS, без CDS не ограничены этим ограничением глубины пути.
Ниже приведен список драйверов, которые можно использовать для поддержки длинных имен файлов VFAT, используемых в Windows 95. Хотя такие драйверы, как DOSLFN, можно загружать практически в любые версии DOS, лучше всего они работают в версиях DOS, поддерживающих Сами LFN, например MS-DOS 7.10 или DR-DOS 7.02 , чтобы команды DOS, например, DIR
отображали длинные имена файлов.
За прошедшие годы также было написано несколько небольших программ Dos в реальном режиме, хотя многие из них со временем были утеряны. Одной из примечательных коллекций программ, которые все еще существуют, является LFN Tools, которая имеет открытый исходный код и включает семь полезных команд LFN, написанных на C++ и ассемблере, с документацией, включенной на английском и немецком языках, и доступна на LFNTOOLS на Sourceforge.net.
До того, как поддержка LFN была реализована в семействе файловых систем FAT, различные файловые менеджеры предоставляли свои собственные методы для прикрепления и поддержки более длинных описаний файлов. Одними из первых это сделали альтернативные процессоры командной строки 4DOS и NDOS со своими внутренними DESCRIBE
командами и соответствующими DESCRIPT.ION
файлами. Последние представляют собой необязательные скрытые файлы, расположенные в каждом каталоге, в которых хранится построчный список имен файлов, расположенных в каталоге, вместе с их текстовым описанием и дополнительными записями метаданных , например, расширенными атрибутами и данными конфигурации для других программ. [10] Описания могут иметь длину до 511 символов и отображаются вдоль имен файлов почти так же, как длинные имена файлов указываются рядом с их короткими псевдонимами в DIR
списках. Если для файла существует запись, она будет скопирована и перемещена вместе с файлом до тех пор, пока эти процессоры командной строки используются для выполнения операции. [9] Эта схема до сих пор поддерживается такими преемниками, как 4OS2 , 4NT/Take Command . Он также был принят различными другими программами, такими как Volkov Commander (VC), DOS Navigator (DN), Open DOS Navigator (ODN), Necromancer's DOS Navigator (NDN), Windows Commander , Total Commander , Double Commander , 7-Zip , XnView , ACDSee , Newsbin Pro , V, FreeCOM [11] и некоторые приложения на основе CUI_LIB [12] .
Human68K , операционная система компьютеров Sharp X68000 с 1986 года, основана на расширенной файловой системе FAT. Он допускает использование до 18,3 символов в имени файла (вместо 8,3 в FAT), а также символы верхнего и нижнего регистра (а также кандзи в коде Shift JIS ), которые считаются отличительными. Если ограничиться использованием имен файлов в формате 8.3, состоящих только из символов верхнего регистра, дискеты Human68K полностью совместимы со стандартным японским форматом дискет FAT емкостью 1232 КиБ (77 цилиндров, 2 головки, 8 секторов, 1024 байта/сектор). Этот формат используется компьютерами серий NEC PC-9800 , Fujitsu FMR и FM Towns . [ нужна цитата ]
Тома Novell NetWare версий 3.x и 4.x также могут поддерживать длинные имена файлов, совместимые с Microsoft, путем загрузки дополнительного загружаемого модуля NetWare (NLM). [13]
Для поддержки приложений Java без реализации схемы, совместимой с VFAT , ОС IBM 4690 на базе FlexOS версии 2 представила собственную архитектуру виртуальной файловой системы (VFS) для хранения длинных имен файлов в файловой системе FAT обратно совместимым способом. Если этот параметр включен, виртуальные имена файлов (VFN) доступны под отдельными буквами логических дисков, тогда как реальные имена файлов (RFN) остаются доступными под исходными буквами дисков. [14]
MPDOSTIP.ZIP
коллекции автора, которая поддерживалась до 2001 года и в то время распространялась на многих сайтах. Предоставленная ссылка указывает на более старую версию файла, преобразованную в HTML NWDOSTIP.TXT
.) [3]0x23
('#'), используемые различными утилитами, написанными Матиасом Р. Полом для разделенных пробелами списков текстовых пар ключ = значение , содержащих свойства файла в виде расширенных атрибутов , таких как CP (кодовые страницы), PC (коды языков). , CW (разрядность), XS (ширина страницы), YS (длина страницы), XO (печать смещения по оси X), YO (печать смещения по оси Y), CR (авторские права), URL (ссылка на источник) и т. д., 0x25
('%') используется программами, использующими CUI_LIB для хранения переменных псевдосреды , 0xED
зарезервировано для Digital Research / Novell / Caldera и 0xFD
для FreeDOS .)4DOS5TIP.TXT
, которая является частью MPDOSTIP.ZIP
коллекции.) [4]