Длинное имя файла
Эта статья нуждается в дополнительных цитатах для проверки . ( февраль 2015 г. ) |
Поддержка длинных имен файлов ( LFN ) — это схемы обратно совместимое расширение Microsoft именования файлов 8.3 (короткое имя файла), используемой в DOS . Длинные имена файлов могут быть более информативными, включая более длинные расширения имен файлов, такие как .jpeg
, .tiff
, и .html
которые распространены в других операционных системах, а не специализированные сокращенные имена, такие как .jpg
, .tif
, или .htm
. Этот стандарт был общим для таблицы размещения файлов (FAT) файловых систем с момента его первой реализации в Windows NT 3.5 в 1994 году.
Чтобы обеспечить совместимость со старыми операционными системами, Microsoft сформулировала метод создания имени файла 8.3 из длинного имени файла (например, Microsoft.txt
к 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 LFN
[ редактировать ]Ниже приведен список драйверов, которые можно использовать для поддержки длинных имен файлов VFAT, используемых в Windows 95. Хотя такие драйверы, как DOSLFN, можно загружать практически в любые версии DOS, лучше всего они работают в версиях DOS, поддерживающих сами LFN, такие как MS-DOS 7.10 или DR-DOS 7.02 , чтобы команды DOS, такие как DIR
также будут отображаться длинные имена файлов.
ТЫ | Имя водителя | Поставщик |
---|---|---|
любой простой DOS | ДОСЛФН, ЛФНДОС | третья сторона |
ДР-ДОС | ДЛИННОЕ ИМЯ | включено |
RxDOS | встроенный | включено |
ОС/2 | VFAT-OS2.IFS | третья сторона |
Windows НТ 4.0 | НТЛФН | третья сторона |
Команды DOS LFN в реальном режиме без драйверов
[ редактировать ]За прошедшие годы также было написано несколько небольших программ для 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, FreeDOS [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 , FlexOS на базе ОС IBM 4690 версии 2 представила собственную архитектуру виртуальной файловой системы (VFS) для хранения длинных имен файлов в файловой системе FAT обратно совместимым способом. Если этот параметр включен, виртуальные имена файлов (VFN) доступны под отдельными буквами логических дисков, тогда как реальные имена файлов (RFN) остаются доступными под исходными буквами дисков. [14]
См. также
[ редактировать ]- ТРАНС.ТБЛ
- Рок-Ридж
- Джолиет (файловая система)
- Ромео (файловая система)
- 8.3 имя файла
- 6.3 имя файла
- Имя файла
- с патентами VFAT Проблемы
- Проектирование файловой системы FAT
- Файловая система
- Поддержка больших файлов (LFS)
Ссылки
[ редактировать ]- ^ «MSDOSFileSystem» . КакаоДев . 12 сентября 2005 г. Архивировано из оригинала 18 октября 2006 г.
- ^ «Ошибки создания файлов или папок в корневом каталоге» . Майкрософт . 120138.
- ^ Винник Клатс, Нэнси (август 1996 г.) [январь 1995 г.]. «Освобождение места для длинных имен файлов» . Файлы и технические статьи I/0. Корпорация Майкрософт . 810456. Архивировано из оригинала 23 апреля 2008 г. Проверено 19 апреля 2007 г.
- ^ Перейти обратно: а б Добиаш, Джек «ВинДачи», изд. (1998-01-06) [1996-11-18]. «Спецификация длинного имени файла» (4-е изд.). Гранд Ронд, Орегон, США. Архивировано из оригинала 25 октября 2015 г. Проверено 22 мая 2013 г.
- ^ Шульман, Эндрю; Браун, Ральф Д .; Макси, Дэвид; Михелс, Раймонд Дж.; Кайл, Джим (1994) [ноябрь 1993 г.]. Недокументированная DOS: Руководство программиста по зарезервированным функциям и структурам данных MS-DOS - расширено и включает MS-DOS 6, Novell DOS и Windows 3.1 (2-е изд.). Ридинг, Массачусетс: Эддисон Уэсли . ISBN 0-201-63287-Х . ISBN 978-0-201-63287-3 . дюймовая дискета) Ошибки: ( xviii +856+vi страниц, 3,5 -
- ^ Браун, Ральф Д .; и др., ред. (16 июля 2000 г.). «Список прерываний Ральфа Брауна» (61-е изд.). ИНТЕР61 .
- ^ Перейти обратно: а б Пол, Матиас Р. (30 июля 1997 г.) [1 мая 1994 г.]. NWDOS-TIPs — советы и подсказки для Novell DOS 7, с просмотром недокументированных подробностей, ошибок и обходных путей . MPDOSTIP (на немецком языке) (3-е изд.). Архивировано из оригинала 10 сентября 2017 г. Проверено 6 августа 2014 г. (Примечание. NWDOSTIP.TXT — это обширная работа по Novell DOS 7 и OpenDOS 7.01, включая описание многих недокументированных функций и внутренних устройств. Это часть еще более обширной работы автора.
MPDOSTIP.ZIP
Коллекция сохранялась до 2001 года и в то время распространялась на многих сайтах. Предоставленная ссылка указывает на более старую версию файла, преобразованную в HTML.NWDOSTIP.TXT
файл.) [3] - ^ Перейти обратно: а б Пол, Матиас Р. (07.06.1997) [апрель 1994 г.]. «Глава 1.3.xi: Слишком длинные пути». NWDOS7UN.TXT — Сводка документированных и недокументированных возможностей Novell DOS 7 . МПДОСТИП (на немецком языке). Архивировано из оригинала 07.11.2016 . Проверено 7 ноября 2016 г.
- ^ Перейти обратно: а б Братья Хардин; Роусон, Том ; Конн, Рекс К .; Пол, Матиас Р.; Дай, Чарльз Э.; Георгиев, Лучезар И. (27 февраля 2002 г.). Онлайн-справка по 4DOS 8.00 .
- ^ «Техническое примечание — Использование DESCRIPT.ION» . Честертаун, Мэриленд, США: JP Software Inc., 1989. Архивировано из оригинала 18 марта 2016 г. (Примечание. Известные идентификаторы включают
0x23
('#'), используемый различными утилитами, написанными Маттиасом Р. Полом для разделенных пробелами списков текстовых пар ключ=значение, содержащих свойства файла в виде расширенных атрибутов, таких как CP (кодовые страницы), PC (коды языков), CW (разрядность). ), XS (ширина страницы), YS (длина страницы), XO (печать смещения по оси X), YO (печать смещения по оси Y), CR (авторские права), URL (ссылка на источник) и т. д.,0x25
('%') используется программами, использующими CUI_LIB для хранения переменных псевдосреды ,0xED
зарезервировано для Digital Research / Novell / Caldera и0xFD
для FreeDOS .) - ^ Дэвис, Джереми. «Файлы FreeCom и 4DOS DESCRIPT.ION» (техническое примечание FreeDOS). Бесплатная DOS . Архивировано из оригинала 11 ноября 2016 г. Проверено 11 ноября 2016 г.
- ^ Пол, Матиас Р. (1 мая 1997 г.) [1 марта 1995 г.]. «Подсказка по JPSofts 4DOS 5.5b/c, 5.51, 5.52a и NDOS» . МПДОСТИП (на немецком языке). Архивировано из оригинала 4 ноября 2016 г. Проверено 8 мая 2015 г. (Примечание. Предоставленная ссылка указывает на версию файла, преобразованную в HTML.
4DOS5TIP.TXT
файл, который является частьюMPDOSTIP.ZIP
коллекция.) [4] - ^ Новелл (11 февраля 1999 г.). «TID1002030 Windows NT, длинные имена файлов в NetWare» . Архивировано из оригинала 6 июня 2011 г. Проверено 3 декабря 2007 г.
- ^ Руководство по программированию ОС 4690, версия 5.2 (PDF) . ИБМ . 06.12.2007. Документ IBM SC30-4137-01. Архивировано из оригинала (PDF) 25 января 2022 г. Проверено 3 сентября 2018 г.