El soporte para nombres de archivo largos ( LFN ) es la extensión compatible con versiones anteriores de Microsoft del esquema de nombres de archivo (nombres de archivo cortos) 8.3 utilizado en MS-DOS . Los nombres de archivo largos pueden ser más descriptivos, incluidas extensiones de nombre de archivo más largas como .jpeg
, .tiff
, y .html
que son comunes en otros sistemas operativos, en lugar de nombres abreviados especializados como .jpg
, .tif
, o .htm
. El estándar ha sido común con los sistemas de archivos de tabla de asignación de archivos (FAT) desde su primera implementación en Windows NT 3.5 de 1994.
Para mantener la compatibilidad con sistemas operativos más antiguos, Microsoft formuló un método para generar un nombre de archivo 8.3 a partir del nombre de archivo largo (por ejemplo, Microsoft.txt
) MICROS~1.TXT
y asociarlo con el archivo.
Microsoft implementó el soporte para LFN en el sistema de archivos FAT mediante el uso de entradas de directorio ocultas, del tipo de etiqueta de volumen , para almacenar los nombres más largos; este esquema se conoce como VFAT y se eligió por cuestiones de compatibilidad, ya que los programas y los componentes del sistema operativo (SO) generalmente ignoran las etiquetas de volumen . Los programas que se ejecutan en SO más antiguos aún podían acceder a los nombres cortos de los archivos, mientras que los SO y programas más nuevos que admitían LFN podían usar los más largos.
Cuando se introdujo por primera vez la compatibilidad con LFN en un sistema operativo basado en DOS , en la forma de Windows 95 , esto provocó algunos problemas para los programas más antiguos. Por ejemplo, un programa DOS que realizaba operaciones de directorio a nivel de sector mientras Windows estaba en modo DOS podía destruir información de nombres de archivo largos, por lo que, de manera predeterminada, el acceso a los discos duros a nivel de sector no estaba permitido en este modo.
Al iniciar en DOS simple, los nombres de archivo largos no son visibles a menos que se instale un controlador LFN VFAT. Microsoft no agregó soporte LFN a muchos de sus programas más antiguos, incluido el Administrador de archivos , el administrador de archivos de Windows 3.1x (Windows para trabajo en grupo) que quedó obsoleto por el nuevo shell del sistema operativo, el Explorador de Windows . Windows NT admitió LFN en sistemas de archivos NTFS a partir del lanzamiento de NT 3.1, y todas sus utilidades, incluido el Administrador de archivos, se actualizaron para admitir LFN. NT 3.5 agregó soporte FAT LFN en preparación para Windows 95. Sin embargo, la versión de Windows 95 del Administrador de archivos provino de Windows para trabajo en grupo 3.11.
OS/2 almacena los LFN para los sistemas de archivos FAT en .LONGNAME
atributos extendidos que son incompatibles con la implementación de Microsoft y solo son visibles para las herramientas que admiten el estándar de OS/2. Muchas API que proporcionan acceso a archivos por ruta de acceso no pueden ver los nombres nuevos y más largos sin un controlador compatible.
Debido a que la implementación de FAT LFN está superpuesta a un sistema de nombres más antiguo y limitado, existen complicaciones inevitables, como si se intenta crear demasiados archivos con las mismas primeras seis letras. [1] Además, es más probable que se encuentren problemas al crear archivos o carpetas en el directorio raíz, ya que FAT12 y FAT16 solo asignan espacio para 512 entradas de directorio raíz en los discos duros. Dado que los nombres de archivo largos utilizan más de una entrada de directorio, este problema puede ocurrir con menos de 512 archivos o carpetas en el directorio raíz. [2] Solo hay espacio para 24 nombres de archivo largos de longitud máxima (512/(1+20)). Este problema no existe para los volúmenes FAT32 .
El sistema de nombres de archivo largos permite una longitud máxima de 255 caracteres UCS-2 [3] [4] incluyendo espacios y caracteres no alfanuméricos (excluyendo los siguientes caracteres, que tienen un significado especial dentro del intérprete de comandos COMMAND.COM o el núcleo del sistema operativo: \ / : * ? " < > |
). Esto se logra encadenando hasta 20 entradas de directorio de 13 caracteres Unicode de 2 bytes cada una. [4] La longitud máxima de un nombre de ruta es de 256 caracteres, que incluye todos los directorios principales y el nombre de archivo. Un nombre de archivo largo de 255 caracteres con mayúsculas y minúsculas solo es posible para archivos o carpetas sin subcarpetas en la carpeta raíz de cualquier unidad.
Aunque el soporte de nombres de archivo largos permite nombres de archivos y directorios más largos, en sistemas basados en DOS, la ruta absoluta del archivo construida a partir de los equivalentes de nombre de archivo y directorio cortos asociados aún se representa en una estructura de datos interna llamada Estructura de directorio actual (CDS), [5] [6] [7] [8] que impone un límite de 66 caracteres en el nombre de ruta (corto) y, por lo tanto, limita indirectamente también la profundidad de la ruta a un máximo de 33 niveles (contando en el directorio raíz y asumiendo solo nombres de una sola letra). (Esta limitación de diseño no estaba presente en versiones anteriores de DR DOS (antes de las actualizaciones de DR DOS 6.0 de noviembre de 1991) que aún utilizaban una representación de ruta relativa internamente, [7] [8] [9] sin embargo, debido a sus diferencias internas, estas versiones no son compatibles con los controladores complementarios LFN existentes). Los sistemas operativos no basados en DOS sin una CDS no están restringidos a esta limitación de profundidad de ruta.
La siguiente es una lista de controladores que se pueden utilizar para proporcionar compatibilidad con nombres de archivo largos VFAT como los que se utilizan en Windows 95. Aunque los controladores como DOSLFN se pueden cargar en casi cualquier versión de DOS, funciona mejor en versiones de DOS que tienen compatibilidad con LFN, como MS-DOS 7.10 o DR-DOS 7.02 , de modo que los comandos de DOS como DIR
también mostrarían nombres de archivo largos.
A lo largo de los años también se han escrito algunos pequeños programas DOS en modo real, aunque muchos se han perdido con el tiempo. Una notable colección de programas que aún existe es LFN Tools, que es de código abierto y consta de siete comandos LFN útiles escritos en C++ y lenguaje ensamblador, con documentación incluida en inglés y alemán, y está disponible en LFNTOOLS en Sourceforge.net.
Antes de que se implementara el soporte de LFN en la familia de sistemas de archivos FAT, varios administradores de archivos proporcionaban sus propios métodos para adjuntar y mantener descripciones de archivos más largas. Entre los primeros en hacerlo se encuentran los procesadores de línea de comandos alternativos 4DOS y NDOS con su DESCRIBE
comando interno y DESCRIPT.ION
archivos correspondientes. Los últimos son archivos ocultos opcionales ubicados en cada directorio que almacenan una lista basada en líneas de nombres de archivos ubicados en el directorio junto con su descripción textual y entradas de metadatos opcionales , por ejemplo, atributos extendidos y datos de configuración para otros programas. [10] Las descripciones pueden tener hasta 511 caracteres de longitud y se muestran junto con los nombres de archivo de la misma manera que los nombres de archivo largos se enumeran junto con sus alias de nombre de archivo corto en DIR
las listas. Si existe una entrada para un archivo, se copiará y se moverá con el archivo mientras se utilicen estos procesadores de línea de comandos para realizar la operación. [9] Este esquema aún se mantiene por sucesores como 4OS2 , 4NT / Take Command . También fue adoptado por varios otros programas como 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] y algunas aplicaciones basadas en CUI_LIB [12] .
Human68K , el sistema operativo de los ordenadores X68000 desde 1986, se basa en un sistema de archivos FAT extendido. Permite hasta 18,3 caracteres en un nombre de archivo (en lugar de los 8,3 de FAT) y también permite caracteres en mayúsculas y minúsculas (así como Kanji en el código Shift JIS ), que se tratan como distintivos. Si se limitan al uso de nombres de archivo en formato 8,3 con caracteres en mayúsculas únicamente, los disquetes Human68K son totalmente compatibles con el formato de disquete FAT estándar japonés de 1232 KiB (77 cilindros, 2 cabezales, 8 sectores, 1024 bytes/sector). Este formato es utilizado por los ordenadores de las series NEC PC-9800 , Fujitsu FMR y FM Towns . [ cita requerida ]
Los volúmenes de Novell NetWare versiones 3.x y 4.x también pueden admitir nombres de archivo largos compatibles con Microsoft, cargando un módulo cargable NetWare (NLM) adicional. [13]
Para soportar aplicaciones Java sin implementar un esquema compatible con VFAT , la versión 2 del sistema operativo IBM 4690 basado en FlexOS introdujo su propia arquitectura de sistema de archivos virtual (VFS) para almacenar nombres de archivos largos en el sistema de archivos FAT de manera compatible con versiones anteriores. Si está habilitado, los nombres de archivos virtuales (VFN) están disponibles bajo letras de unidad lógicas separadas, mientras que los nombres de archivos reales (RFN) permanecen disponibles bajo las letras de unidad originales. [14]
MPDOSTIP.ZIP
colección aún más grande del autor, mantenida hasta 2001 y distribuida en muchos sitios en ese momento. El enlace proporcionado apunta a una versión anterior del NWDOSTIP.TXT
archivo convertida a HTML). [3]0x23
('#') tal como lo usan varias utilidades escritas por Matthias R. Paul para listas separadas por espacios de pares clave=valor de texto que contienen propiedades de archivo como atributos extendidos como CP (páginas de códigos), PC (códigos de idioma), CW (ancho de bits), XS (ancho de página), YS (longitud de página), XO (desplazamiento x de impresión), YO (desplazamiento y de impresión), CR (derechos de autor), URL (enlace de origen), etc., 0x25
('%') es utilizado por programas que usan CUI_LIB para almacenar variables de pseudoentorno , 0xED
estando reservado para Digital Research / Novell / Caldera y 0xFD
para FreeDOS ).4DOS5TIP.TXT
archivo, que es parte de la MPDOSTIP.ZIP
colección). [4]