stringtranslate.com

Nombre de archivo largo

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 .htmlque 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.TXTy asociarlo con el archivo.

Problemas de compatibilidad

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.

Límites

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.

Controladores VFAT LFN

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 DIRtambién mostrarían nombres de archivo largos.

Comandos LFN de DOS en modo real sin controlador

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.

Otras implementaciones

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 DESCRIBEcomando interno y DESCRIPT.IONarchivos 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 DIRlas 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]

Véase también

Referencias

  1. ^ "MSDOSFileSystem". CocoaDev . 12 de septiembre de 2005. Archivado desde el original el 18 de octubre de 2006.
  2. ^ "Errores al crear archivos o carpetas en el directorio raíz". Microsoft . 120138.
  3. ^ Winnick Cluts, Nancy (agosto de 1996) [enero de 1995]. "Hacer espacio para nombres de archivo largos". Artículos técnicos sobre archivos y E/S. Microsoft Corporation . 810456. Archivado desde el original el 23 de abril de 2008. Consultado el 19 de abril de 2007 .
  4. ^ ab Dobiash, Jack "vinDaci", ed. (1998-01-06) [1996-11-18]. "Long Filename Specification" (4.ª ed.). Grand Ronde, Oregon, EE. UU. Archivado desde el original el 25 de octubre de 2015. Consultado el 22 de mayo de 2013 .
  5. ^ Schulman, Andrew; Brown, Ralf D .; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [noviembre de 1993]. DOS no documentado: guía del programador para funciones y estructuras de datos reservadas de MS-DOS, ampliada para incluir MS-DOS 6, Novell DOS y Windows 3.1 (2.ª edición). Reading, Massachusetts: Addison Wesley . ISBN 0-201-63287-X. ISBN 978-0-201-63287-3(xviii+856+vi páginas, disquete de 3,5 pulgadas) Erratas: [1][2]
  6. ^ Brown, Ralf D. ; et al., eds. (16 de julio de 2000). "Lista de interrupciones de Ralf Brown" (61.ª ed.). INTER61 .
  7. ^ ab Paul, Matthias R. (30 de julio de 1997) [1 de mayo de 1994]. NWDOS-TIP: consejos y trucos para Novell DOS 7, con un clic para deshacer detalles, errores y soluciones. MPDOSTIP (en alemán) (3 ed.). Archivado desde el original el 10 de septiembre de 2017 . Consultado el 6 de agosto de 2014 .(NB. NWDOSTIP.TXT es un trabajo exhaustivo sobre Novell DOS 7 y OpenDOS 7.01, que incluye la descripción de muchas características y componentes internos no documentados. Es parte de la MPDOSTIP.ZIPcolecció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.TXTarchivo convertida a HTML). [3]
  8. ^ ab Paul, Matthias R. (7 de junio de 1997) [abril de 1994]. "Capítulo 1.3.xi: Überlange Pfade". NWDOS7UN.TXT - Zusammenfassung der dokumentierten und undokumentierten Fähigkeiten von Novell DOS 7. MPDOSTIP (en alemán). Archivado desde el original el 7 de noviembre de 2016 . Consultado el 7 de noviembre de 2016 .
  9. ^ ab Brothers, Hardin; Rawson, Tom ; Conn, Rex C .; Paul, Matthias R.; Dye, Charles E.; Georgiev, Luchezar I. (27 de febrero de 2002). Ayuda en línea de 4DOS 8.00 .
  10. ^ "Nota técnica: uso de DESCRIPT.ION". Chestertown, Maryland, EE. UU.: JP Software Inc. 1989. Archivado desde el original el 18 de marzo de 2016.(NB. Los identificadores conocidos incluyen 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 , 0xEDestando reservado para Digital Research / Novell / Caldera y 0xFDpara FreeDOS ).
  11. ^ Davis, Jeremy. "Archivos DESCRIPT.ION de FreeCom y 4DOS" (nota técnica de FreeDOS). FreeDOS . Archivado desde el original el 2016-11-11 . Consultado el 2016-11-11 .
  12. ^ Paul, Matías R. (1 de mayo de 1997) [1 de marzo de 1995]. "Hinweise zu JPSofts 4DOS 5.5b/c, 5.51, 5.52a y NDOS". MPDOSTIP (en alemán). Archivado desde el original el 4 de noviembre de 2016 . Consultado el 8 de mayo de 2015 .(NB: El enlace proporcionado apunta a una versión convertida a HTML del 4DOS5TIP.TXTarchivo, que es parte de la MPDOSTIP.ZIPcolección). [4]
  13. ^ Novell (11 de febrero de 1999). "TID1002030 Windows NT, nombres de archivo largos en NetWare". Archivado desde el original el 6 de junio de 2011. Consultado el 3 de diciembre de 2007 .
  14. ^ Guía de programación del SO 4690 versión 5.2 (PDF) . IBM . 2007-12-06. Documento IBM SC30-4137-01. Archivado (PDF) desde el original el 2022-01-25 . Consultado el 2018-09-03 .

Enlaces externos