Un nombre de archivo 8.3 (también llamado nombre de archivo corto o SFN ) es aquel que obedece la convención de nombre de archivo utilizada por versiones antiguas de DOS y versiones de Microsoft Windows anteriores a Windows 95 y Windows NT 3.5. También se utiliza en los sistemas operativos modernos de Microsoft como nombre de archivo alternativo al nombre de archivo largo, para brindar compatibilidad con programas heredados. La convención de nombre de archivo está limitada por el sistema de archivos FAT. También han existido esquemas de nombres de archivos 8.3 similares en sistemas operativos de minicomputadoras anteriores CP/M, TRS-80, Atari y algunos Data General y Digital Equipment Corporation.
Los nombres de archivos 8.3 están limitados a un máximo de ocho caracteres (después de cualquier especificador de directorio), seguidos opcionalmente de una extensión de nombre de archivo que consta de un punto .
y como máximo tres caracteres más. Para sistemas que solo admiten nombres de archivos 8.3, se ignoran los caracteres sobrantes. Si un nombre de archivo no tiene extensión, el final .
no tiene significado (es decir, myfile
y myfile.
son equivalentes). Además, los nombres de archivos y directorios están en mayúsculas en este sistema, aunque los sistemas que utilizan el estándar 8.3 normalmente no distinguen entre mayúsculas y minúsculas (lo que CamelCap.tpu
equivale al nombre CAMELCAP.TPU
). Sin embargo, en sistemas operativos que no son 8.3 (como casi cualquier sistema operativo moderno) que acceden a sistemas de archivos 8.3 (incluidos los disquetes formateados en DOS , pero también algunas tarjetas de memoria modernas y sistemas de archivos en red), el sistema subyacente puede alterar los nombres de archivos internamente para conservar mayúsculas y minúsculas y evitar truncar letras en los nombres, por ejemplo en el caso de VFAT .
VFAT , una variante de FAT con un formato de directorio extendido, se introdujo en Windows 95 y Windows NT 3.5. Permitía nombres de archivos largos Unicode (LFN) de mayúsculas y minúsculas mixtas además de los nombres clásicos 8.3 mediante el uso de múltiples registros de entrada de directorio de 32 bytes para nombres de archivos largos (de tal manera que el antiguo software del sistema 8.3 solo reconocerá uno como la entrada de directorio válida).
Para mantener la compatibilidad con aplicaciones heredadas (en DOS y Windows 3.1 ), en los sistemas de archivos FAT y VFAT, el sistema operativo genera automáticamente un nombre de archivo 8.3 para cada LFN, a través del cual el archivo [también] puede abrirse, cambiarse el nombre o eliminarse. aunque el nombre generado (p. ej. OVI3KV~N
) puede mostrar poca similitud con el original. La generación de nombres de archivos 8.3 en sistemas de archivos NTFS se puede desactivar en todo el sistema (con riesgos). [1] El nombre de archivo 8.3 se puede obtener utilizando la función GetShortPathName de Kernel32.dll . [2] [3]
Aunque no existe un algoritmo obligatorio para crear el nombre 8.3 a partir de un LFN, Windows utiliza la siguiente convención: [4]
TEXTFILE.TXT
TextFile.Txt
se convierte en TEXTFILE.TXT
..
se eliminan los puntos iniciales. Otros caracteres como +
se cambian al guión bajo _
y las letras se ponen en mayúsculas. Luego, el nombre eliminado se trunca a las primeras 6 letras de su nombre base , seguido de una tilde , seguido de un solo dígito , seguido de un punto .
y seguido de los primeros 3 caracteres de la extensión.TextFile.Mine.txt
se convierte en TEXTFI~1.TXT
(o ya TEXTFI~2.TXT
debería TEXTFI~1.TXT
existir). ver +1.2.text
se convierte en VER_12~1.TEX
. .bashrc.swp
se convierteBASHRC~1.SWP
.
seguido de los primeros 3 caracteres de la extensión. [5]TextFile.Mine.txt
se convierte en TE021F~1.TXT
.~1
los ~9
sufijos no sean suficientes para resolver la colisión), el nombre se trunca aún más a 5. letras, seguidas de una tilde, seguidas de dos dígitos a partir del 10, seguido de un punto .
y los primeros 3 caracteres de la extensión.TextFile.Mine.txt
se convierte TEXTF~10.TXT
en si TEXTFI~1.TXT
todos TEXTFI~9.TXT
ya existen.Durante el caso antimonopolio de Microsoft de 2001 , los nombres MICROS~1 y MICROS~2 se utilizaron con humor para referirse a las empresas que podrían existir después de una propuesta de división de Microsoft. [6]
NTFS , un sistema de archivos utilizado por la familia Windows NT , admite LFN de forma nativa, pero los nombres 8.3 todavía están disponibles para aplicaciones heredadas. Se sabe que Windows NTVDM usa nombres 8.3. Opcionalmente, esto se puede desactivar en todo el sistema para mejorar el rendimiento en situaciones donde existen grandes cantidades de archivos con nombres similares en la misma carpeta. [1] La creación de nombres de archivos 8.3 se puede deshabilitar en todo el sistema y/o por volumen, y los nombres de archivos 8.3 existentes se pueden eliminar usando fsutil
o una clave de Registro. [7]
El sistema de archivos ISO 9660 (utilizado principalmente en discos compactos ) tiene limitaciones similares en el nivel 1 más básico, con la restricción adicional de que los nombres de directorio no pueden contener extensiones y que algunos caracteres (en particular guiones ) no están permitidos en los nombres de archivos. El nivel 2 permite nombres de archivos de hasta 31 caracteres, más compatibles con los nombres de archivos clásicos de AmigaOS y Mac OS .
En los sistemas de archivos VFAT y NTFS , los nombres de archivos 8.3 se almacenan como codificación ANSI, para compatibilidad con versiones anteriores.
ReFS ya no admite nombres de archivos 8.3 .
Esta tecnología heredada se utiliza en una amplia gama de productos y dispositivos, como estándar para intercambiar información, como las tarjetas flash compactas utilizadas en las cámaras. Los nombres de archivos largos VFAT LFN introducidos por Windows 95/98/ME conservaron la compatibilidad. Pero el VFAT LFN utilizado en sistemas basados en NT (Windows NT/2K/XP) utiliza un nombre corto modificado 8.3.
Si un nombre de archivo contiene sólo letras minúsculas, o es una combinación de un nombre base en minúsculas con una extensión en mayúsculas , o viceversa; y no tiene caracteres especiales y se ajusta a los límites de 8.3, no se crea una entrada VFAT en Windows NT y versiones posteriores como XP. En su lugar, se utilizan dos bits en el byte 0x0c de la entrada del directorio para indicar que el nombre del archivo debe considerarse total o parcialmente en minúsculas. Específicamente, el bit 4 significa extensión en minúscula y el bit 3 nombre base en minúscula , lo que permite combinaciones como example.TXT
o HELLO.txt
pero no Mixed.txt
. Pocos otros sistemas operativos admiten esto. Esto crea un problema de manipulación de nombres de archivos de compatibilidad con versiones anteriores de Windows (95, 98, ME) que ven nombres de archivos en mayúsculas si se ha utilizado esta extensión y, por lo tanto, pueden cambiar el uso de mayúsculas de un archivo cuando se transporta, como en una unidad flash USB. Esto puede causar problemas en los sistemas operativos que no muestran el comportamiento de nombres de archivos que no distinguen entre mayúsculas y minúsculas como lo hacen DOS y Windows. Linux reconocerá esta extensión al leer; [8] el nombre corto de la opción de montaje determina si esta función se utiliza al escribir. [9]
Para MS-DOS puede utilizar DOSLFN de Henrik Haftmann. [10]
Una tabla de directorio es un tipo especial de archivo que representa un directorio. Cada archivo o directorio almacenado en él está representado por una entrada de 32 bytes en la tabla. Cada entrada registra el nombre, la extensión, los atributos ( archivo , directorio, oculto, solo lectura, sistema y volumen), la fecha y hora de creación, la dirección del primer grupo de datos del archivo/directorio y finalmente el tamaño del directorio de archivos.
Los caracteres legales para nombres de archivos DOS incluyen los siguientes:
A
-Z
0
–9
""
... ""
) cuando se ve como una variable dentro del programa que crea el comando de DOS).!
, #
, $
, %
, &
, '
, (
, )
, -
, @
, ^
, _
, `
, {
, }
,~
Esto excluye los siguientes caracteres ASCII :
"
, *
, +
, ,
, /
, :
, ;
, <
, =
, >
, ?
, \
, [
, ]
, |
[11].
( U+002E . PUNTO COMPLETO ) dentro de los campos de nombre y extensión, excepto en las entradas .
y ..
(ver más abajo)a
– z
, almacenadas como A
– Z
en FAT12/FAT16Los nombres de archivos DOS están en el juego de caracteres OEM . El código 0xE5 como primer byte (ver más abajo) genera problemas cuando se utilizan caracteres extra-ASCII .
Las entradas del directorio, tanto en la región del directorio raíz como en los subdirectorios, tienen el siguiente formato:
A veces puede ser conveniente convertir un nombre de archivo largo en un nombre de archivo corto, por ejemplo cuando se trabaja con el símbolo del sistema. Se pueden seguir algunas reglas simples para obtener el nombre de archivo 8.3 correcto.
~
como séptimo carácter y un número (normalmente 1) como octavo. El número lo distingue de otros archivos con las mismas seis primeras letras y la misma extensión.Para saber con seguridad los nombres SFN o 8.3 de los archivos en un directorio
uso: dir /x
muestra los nombres cortos si los hay, y los nombres largos.
o: dir /-n
muestra solo los nombres cortos, en el formato de listado DIR original.
En los sistemas operativos basados en Windows NT , el subprograma del símbolo del sistema ( cmd.exe ) acepta nombres de archivos largos con caracteres comodín (signo de interrogación ?
y asterisco *
); Los nombres de archivos largos con espacios deben tener caracteres de escape (es decir, entre comillas simples o dobles). [12]
A partir de Windows Vista , los comandos de la consola y los subprogramas de PowerShell realizan una coincidencia de patrones limitada al permitir comodines en el nombre del archivo y en cada subdirectorio en la ruta del archivo y sustituyendo silenciosamente la primera entrada del directorio coincidente (por ejemplo, cambiará el directorio actual a ).C:\>CD \prog*\inter*
C:\Program Files\Internet Explorer\