Un nombre de archivo 8.3 (también llamado nombre de archivo corto o SFN ) es aquel que obedece a la convención de nombres de archivo utilizada por las versiones antiguas de DOS y las 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 un nombre de archivo alternativo al nombre de archivo largo, para proporcionar compatibilidad con programas heredados. La convención de nombres de archivo está limitada por el sistema de archivos FAT. También han existido esquemas de nombres de archivo 8.3 similares en los sistemas operativos de minicomputadoras CP/M, TRS-80, Atari y algunos Data General y Digital Equipment Corporation.
Los nombres de archivo 8.3 están limitados a un máximo de ocho caracteres (después de cualquier especificador de directorio), seguidos opcionalmente por una extensión de nombre de archivo que consiste en un punto .
y como máximo tres caracteres adicionales. Para sistemas que sólo admiten nombres de archivo 8.3, los caracteres sobrantes se ignoran. Si un nombre de archivo no tiene extensión, un final .
no tiene importancia (es decir, myfile
y myfile.
son equivalentes). Además, los nombres de archivo y directorio 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 hace CamelCap.tpu
que sean equivalentes 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 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 archivo internamente para preservar las 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 archivo largos Unicode (LFN) con mayúsculas y minúsculas además de los nombres clásicos de 8.3 mediante el uso de múltiples registros de entrada de directorio de 32 bytes para nombres de archivo largos (de tal manera que el software del sistema 8.3 antiguo solo reconocerá uno como la entrada de directorio válida).
Para mantener la compatibilidad con las aplicaciones antiguas (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 puede [también] abrirse, renombrarse o eliminarse, aunque el nombre generado (por ejemplo OVI3KV~N
, ) puede mostrar poca similitud con el original. La generación de nombres de archivo 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 por el 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 , seguidas de una tilde , seguida de un solo dígito , seguido de un punto .
, seguido de los primeros 3 caracteres de la extensión.TextFile.Mine.txt
se convierte en TEXTFI~1.TXT
(o TEXTFI~2.TXT
, TEXTFI~1.TXT
ya debería existir). ver +1.2.text
se convierte en VER_12~1.TEX
. se .bashrc.swp
convierte enBASHRC~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 5 letras, seguidas de una tilde, seguidas de dos dígitos a partir de 10, seguido de un punto .
y los primeros 3 caracteres de la extensión.TextFile.Mine.txt
se convierte TEXTF~10.TXT
si ya TEXTFI~1.TXT
existe TEXTFI~9.TXT
todo.Durante el caso antimonopolio de Microsoft de 2001 , los nombres MICROS~1 y MICROS~2 se usaron 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 aún están disponibles para aplicaciones heredadas. Se sabe que Windows NTVDM utiliza nombres 8.3. Esto se puede desactivar opcionalmente en todo el sistema para mejorar el rendimiento en situaciones en las que existen grandes cantidades de archivos con nombres similares en la misma carpeta. [1] La creación de nombres de archivo 8.3 se puede desactivar en todo el sistema y/o por volumen, y los nombres de archivo 8.3 existentes se pueden eliminar utilizando 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 (especialmente los guiones ) no están permitidos en los nombres de archivo. El nivel 2 permite nombres de archivo de hasta 31 caracteres, más compatible con los nombres de archivo clásicos de AmigaOS y Mac OS .
En los sistemas de archivos VFAT y NTFS , los nombres de archivo 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 un estándar para intercambiar información, como las tarjetas flash compactas que se utilizan en las cámaras. Los nombres de archivo largos VFAT LFN introducidos por Windows 95/98/ME mantuvieron la compatibilidad. Pero el VFAT LFN utilizado en los sistemas basados en NT (Windows NT/2K/XP) utiliza un nombre corto 8.3 modificado.
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 de directorio para indicar que el nombre de archivo debe considerarse como total o parcialmente en minúsculas. Específicamente, el bit 4 significa extensión en minúsculas y el bit 3 nombre base en minúsculas , 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 alteración de nombres de archivo de compatibilidad con versiones anteriores de Windows (95, 98, ME) que ven nombres de archivo en mayúsculas si se ha utilizado esta extensión y, por lo tanto, pueden cambiar la capitalización de un archivo cuando se transporta, como en una unidad flash USB. Esto puede causar problemas para los sistemas operativos que no exhiben el comportamiento de nombre de archivo sin distinción entre mayúsculas y minúsculas como lo hacen DOS y Windows. Linux reconocerá esta extensión al leer; [8] La opción de montaje shortname determina si se utiliza esta función al escribir. [9]
Para MS-DOS puede utilizar DOSLFN de Henrik Haftmann. [10]
Una tabla de directorios es un tipo especial de archivo que representa un directorio. Cada archivo o directorio almacenado en ella se representa mediante 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, por último, el tamaño del archivo/directorio.
Los caracteres legales para los nombres de archivos DOS incluyen los siguientes:
A
–Z
0
–9
""
... ""
) cuando se lo ve como una variable dentro del programa que crea el comando DOS).!
, #
, $
, %
, &
, '
, (
, )
, -
, @
, ^
, _
, `
, {
, }
,~
Esto excluye los siguientes caracteres ASCII :
"
, *
, +
, ,
, /
, :
, ;
, <
, =
, >
, ?
, \
, [
, ]
, |
[11].
( U+002E . PUNTO ) en 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 archivo DOS están en el conjunto de caracteres OEM . El código 0xE5 como primer byte (ver a continuación) genera problemas cuando se utilizan caracteres ASCII adicionales .
Las entradas de 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 uno corto, por ejemplo, cuando se trabaja con el símbolo del sistema. Se pueden seguir algunas reglas simples para obtener el nombre de archivo correcto en 8.3.
~
como séptimo carácter y un número (normalmente 1) como octavo. El número lo distingue de otros archivos que tienen las mismas primeras seis letras y la misma extensión.Para saber con seguridad los nombres SFN o 8.3 de los archivos de un directorio
uso: dir /x
muestra los nombres cortos si los hay, y los nombres largos.
o: dir /-n
muestra sólo 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 archivo largos con caracteres comodín (signo de interrogación ?
y asterisco *
); los nombres de archivo largos con espacios en ellos deben ser escapados (es decir, encerrados entre comillas simples o dobles). [12]
A partir de Windows Vista , los comandos de consola y los subprogramas de PowerShell realizan una coincidencia de patrones limitada al permitir caracteres comodín en el nombre de archivo y en cada subdirectorio de la ruta del archivo y sustituir silenciosamente la primera entrada de directorio coincidente (por ejemplo, cambiará el directorio actual a ).C:\>CD \prog*\inter*
C:\Program Files\Internet Explorer\