stringtranslate.com

Длинное имя файла

Поддержка длинных имен файлов ( LFN ) — это обратно совместимое расширение Microsoft схемы именования файлов 8.3 (короткое имя файла), используемой в DOS . Длинные имена файлов могут быть более информативными, включая более длинные расширения имен файлов , такие как .jpeg, .tiff, .html, и .xhtmlкоторые распространены в других операционных системах, а не специальные сокращенные имена, такие как .jpg, .tif, .htmили .xht. Этот стандарт является общим для файловых систем таблицы размещения файлов (FAT) с момента его первой реализации в Windows NT 3.5 в 1994 году.

Чтобы обеспечить совместимость со старыми операционными системами, Microsoft разработала метод создания имени файла 8.3 из длинного имени файла (например, Microsoft.txtto 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 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, 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]

Смотрите также

Рекомендации

  1. ^ "MSDOSFileSystem". КакаоДев . 12 сентября 2005 г. Архивировано из оригинала 18 октября 2006 г.
  2. ^ «Ошибки при создании файлов или папок в корневом каталоге». Майкрософт . 120138.
  3. ^ Винник Клатс, Нэнси (август 1996 г.) [январь 1995 г.]. «Освобождение места для длинных имен файлов». Файлы и технические статьи I/0. Корпорация Майкрософт . 810456. Архивировано из оригинала 23 апреля 2008 г. Проверено 19 апреля 2007 г.
  4. ^ Аб Добиаш, Джек «ВинДачи», изд. (1998-01-06) [1996-11-18]. «Спецификация длинного имени файла» (4-е изд.). Гранд Ронд, Орегон, США. Архивировано из оригинала 25 октября 2015 г. Проверено 22 мая 2013 г.
  5. ^ Шульман, Эндрю; Браун, Ральф Д .; Макси, Дэвид; Михелс, Раймонд Дж.; Кайл, Джим (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-дюймовая дискета) Исправления: [1][2]
  6. ^ Браун, Ральф Д .; и др., ред. (16 июля 2000 г.). «Список прерываний Ральфа Брауна» (61-е изд.). ИНТЕР61 .
  7. ^ аб Пол, Матиас Р. (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]
  8. ^ аб Пол, Матиас Р. (1997-06-07) [апрель 1994 г.]. «Глава 1.3.xi: Überlange Pfade». NWDOS7UN.TXT — Zusammenfassung der dokumentierten und undocumentierten Fähigkeiten von Novell DOS 7. MPDOSTIP (на немецком языке). Архивировано из оригинала 07.11.2016 . Проверено 7 ноября 2016 г.
  9. ^ Ab Brothers, Хардин; Роусон, Том ; Конн, Рекс К .; Пол, Матиас Р.; Дай, Чарльз Э.; Георгиев, Лучезар И. (27 февраля 2002 г.). Онлайн-справка по 4DOS 8.00 .
  10. ^ «Техническое примечание — Использование 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 .)
  11. ^ Дэвис, Джереми. «Файлы FreeCom и 4DOS DESCRIPT.ION» (техническое примечание FreeDOS). Бесплатная DOS . Архивировано из оригинала 11 ноября 2016 г. Проверено 11 ноября 2016 г.
  12. ^ Пол, Матиас Р. (1 мая 1997 г.) [1 марта 1995 г.]. «Подсказки по JPSofts 4DOS 5.5b/c, 5.51, 5.52a и NDOS». МПДОСТИП (на немецком языке). Архивировано из оригинала 4 ноября 2016 г. Проверено 8 мая 2015 г.(Примечание. Предоставленная ссылка указывает на преобразованную в HTML версию файла 4DOS5TIP.TXT, которая является частью MPDOSTIP.ZIPколлекции.) [4]
  13. ^ Novell (11 февраля 1999 г.). «TID1002030 Windows NT, длинные имена файлов в NetWare». Архивировано из оригинала 6 июня 2011 г. Проверено 3 декабря 2007 г.
  14. ^ Руководство по программированию ОС 4690, версия 5.2 (PDF) . ИБМ . 06.12.2007. Документ IBM SC30-4137-01. Архивировано из оригинала (PDF) 25 января 2022 г. Проверено 3 сентября 2018 г.

Внешние ссылки