8.3 nombre de archivo

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Convención de nombres de archivo utilizada por versiones antiguas de DOS y Windows

Un nombre de archivo 8.3 (también llamado nombre de archivo corto o SFN) es una 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 usa en los sistemas operativos modernos de Microsoft como un nombre de archivo alternativo al nombre de archivo largo para compatibilidad con programas heredados. La convención de nombres de archivos está limitada por el sistema de archivos FAT. También han existido esquemas de nomenclatura de archivos 8.3 similares en sistemas operativos de minicomputadoras anteriores CP / M, TRS-80, Atari y algunos Data General y Digital Equipment Corporation.

Resumen

8.3 Los nombres de archivo 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 consta de un punto . y como máximo tres caracteres más. Para los sistemas que solo admiten nombres de archivo 8.3, se ignoran los caracteres sobrantes. Si un nombre de archivo no tiene extensión, un . 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 usan el estándar 8.3 generalmente no distinguen entre mayúsculas y minúsculas (lo que hace que CamelCap.tpu equivalente al nombre CAMELCAP.TPU). Sin embargo, en los sistemas operativos que no son 8.3 (como casi cualquier sistema operativo moderno) que acceden a los sistemas de archivos 8.3 (incluidos los disquetes con formato 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 caso y evite truncar letras en los nombres, por ejemplo en el caso de VFAT.

VFAT y nombres de archivo 8.3 generados por computadora

VFAT, una variante de FAT con un formato de directorio extendido, se introdujo en Windows 95 y Windows NT 3.5. Permitió nombres de archivo largos (LFN) Unicode en mayúsculas y minúsculas 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 archivo largos (de tal manera que el antiguo software del sistema 8.3 solo reconocerá una entrada de directorio válida).).

Para mantener la compatibilidad con versiones anteriores de las aplicaciones heredadas (en DOS y Windows 3.1), en los sistemas de archivos FAT y VFAT, se genera automáticamente un nombre de archivo 8.3 para cada LFN, a través del cual el archivo aún se puede renombrar, eliminar o abrir, aunque el archivo generado nombre (por ejemplo, OVI3KV~N) puede mostrar poca similitud al original En los sistemas de archivos NTFS, la generación de nombres de archivo 8.3 se puede desactivar. El nombre de archivo 8.3 se puede obtener mediante la función GetShortPathName de Kernel32.dll.

Aunque no existe un algoritmo obligatorio para crear el nombre 8.3 a partir de un LFN, Windows usa la siguiente convención:

  1. Si el LFN es 8.3 mayúscula, ningún LFN se almacenará en el disco en absoluto.
    • Ejemplo: TEXTFILE.TXT
  2. Si el LFN es 8.3 caso mixto, el LFN almacenará el nombre de caso mixto, mientras que el nombre 8.3 será una versión superior.
    • Ejemplo: TextFile.Txt se convierte en TEXTFILE.TXT.
  3. Si el nombre de archivo contiene caracteres no permitidos en un nombre de 8.3 (incluyendo el espacio que fue dejado por convención aunque no por las API) o bien parte es demasiado largo, el nombre es despojado de caracteres inválidos como espacios y períodos extra. Si el nombre comienza con períodos . los períodos principales se eliminan. Otros caracteres como + se cambian al subrayado _, y las letras se ponen en mayúscula. El nombre despojado es luego truncado a las 6 primeras letras de su nombre base, seguido de un tilde, seguido de un dígito único, seguido de un período ., seguido por los primeros 3 caracteres de la extensión.
    • Ejemplo: TextFile.Mine.txt se convierte en TEXTFI~1.TXT (o TEXTFI~2.TXT, debería TEXTFI~1.TXT ya existen). ver +1.2.text se convierte en VER_12~1.TEX. .bashrc.swp se convierte en BASHRC~1.SWP
  4. En todas las versiones de NT, incluyendo Windows 2000 y más tarde, si por lo menos 4 archivos o carpetas ya existen con la misma extensión y primeros 6 caracteres en sus nombres cortos, el LFN despojado se trunca a las 2 primeras letras del nombre base (o 1 si el nombre base tiene sólo 1 letra), seguido de 4 dígitos hexadecimales derivados de un hash indocumentado del nombre de archivo, seguido de un solo período ., seguido por los primeros 3 caracteres de la extensión.
    • Ejemplo: TextFile.Mine.txt se convierte en TE021F~1.TXT.
  5. En Windows 95, 98 y ME, si más de 9 archivos o carpetas con la misma extensión y primeros 6 caracteres y en sus nombres cortos (para que ~1 a través de ~9 los sufijos no son suficientes para resolver la colisión), el nombre es más truncado a 5 letras, seguido de un tilde, seguido de dos dígitos a partir de 10, seguido de un período . y los primeros 3 caracteres de la extensión.
    • Ejemplo: TextFile.Mine.txt se convierte en TEXTF~10.TXT si TEXTFI~1.TXT a través de TEXTFI~9.TXT todo ya existe.

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. Esto se puede deshabilitar opcionalmente para mejorar el rendimiento en situaciones en las que existen grandes cantidades de archivos con nombres similares en la misma carpeta.

El sistema de archivos ISO 9660 (usado 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 (particularmente guiones) no están permitidos en los nombres de archivo. El nivel 2 permite nombres de archivo de hasta 31 caracteres, más compatibles con los nombres de archivo clásicos de AmigaOS y Mac OS.

Compatibilidad

Esta tecnología heredada se usa en una amplia gama de productos y dispositivos, como un estándar para intercambiar información, como las tarjetas flash compactas que se usan en las cámaras. Los nombres de archivo largos VFAT LFN introducidos por Windows 95/98/ME conservaron la compatibilidad. Pero el VFAT LFN usado en sistemas basados en NT (Windows NT/2K/XP) usa un nombre abreviado 8.3 modificado.

Si un nombre de archivo contiene solo 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úsculas y el bit 3 nombre base en minúsculas, lo que permite combinaciones como ejemplo.TXT o HOLA.txt pero no Mixto.txt. Pocos otros sistemas operativos soportan esto. Esto crea un problema de manipulación de nombres de archivo de compatibilidad con versiones anteriores con versiones anteriores de Windows (95, 98, ME) que ven los nombres de archivo en mayúsculas si se ha utilizado esta extensión y, por lo tanto, pueden cambiar las mayúsculas 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 que no distingue entre mayúsculas y minúsculas como lo hacen DOS y Windows. Linux reconocerá esta extensión al leer; la opción de montaje shortname determina si esta función se usa al escribir. Para MS-DOS, puede usar el DOSLFN de Henrik Haftmann.

Tabla de directorio

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, de 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 archivo/directorio.

Los caracteres legales para los nombres de archivo de DOS incluyen los siguientes:

  • Cartas mayúsculas AZ
  • Números 09
  • Espacio (aunque los espacios de rastreo en el nombre base o la extensión se consideran padding y no parte del nombre de archivo, también los nombres de archivo con los espacios en ellos deben ser encerrados en citas para ser utilizados en una línea de comandos DOS, y si el comando DOS se construye programáticamente, el nombre de archivo debe ser encerrado en dobles (""..."") cuando se ve como una variable dentro del programa construyendo el comando DOS.)
  • !, #, $, %, &, ', (, ), -, @, ^, _, `, {, }, ~
  • Valores 128–255 (aunque si los servicios de NLS están activos en DOS, algunos caracteres interpretados como minúscula son inválidos e indisponibles)

Esto excluye los siguientes caracteres ASCII:

  • ", *, +, ,, /, :, ;, <, =, >, ?, , [, ], |
    Windows/MS-DOS no tiene carácter de escape de shell
  • . ()U+002E . FULL STOP) dentro de los campos de nombre y extensión, excepto en . y .. (véase infra)
  • Cartas de casos inferiores az, almacenado como AZ on FAT12/FAT16
  • Control de caracteres 0–31
  • Valor 127 (DEL)

Los nombres de archivo de DOS están en el juego de caracteres OEM. El código 0xE5 como primer byte (ver a continuación) genera problemas cuando se utilizan caracteres ASCII adicionales.

Las entradas del directorio, tanto en la región del directorio raíz como en los subdirectorios, tienen el siguiente formato:

Byte Offset Duración Descripción
0x00 8 DOS nombre de archivo (pagado con espacios)

El primer byte puede tener los siguientes valores especiales:

0x00 La entrada está disponible y ninguna entrada posterior está en uso
0x05 El carácter inicial es en realidad 0xE5
0x2E Entrada de puntosO bien . o ..
0xE5 La entrada ha sido borrada anteriormente. Las utilidades de archivo undelete deben reemplazar este personaje con un carácter regular como parte del proceso de eliminación.
0x08 3 extensión de archivo DOS (pagado con espacios, puede estar vacío)
0x0b 1 Atributos de archivo

El primer byte puede tener los siguientes valores especiales:

Bit Máscara Descripción
0 0x01 Leer sólo
1 0x02 Oculto
2 0x04 Sistema
3 0x08 Volumen de etiqueta
4 0x10 Subdirectorio
5 0x20 Archivo
6 0x40 Dispositivo (sólo uso interno, nunca encontrado en disco)
7 0x80 No utilizados

Un valor de atributo de 0x0F se utiliza para designar una entrada de nombre de archivo largo.

0x0c 1 Reservado; dos bits son utilizados por NT y versiones posteriores para codificar información de casos
0x0d 1 Crear tiempo, resolución fina: 10 ms unidades, valores de 0 a 199.
0x0e 2 Crea tiempo. La hora, minuto y segundo están codificados de acuerdo con el siguiente bitmap:
Bits Descripción
15 a 11 Horas (0–23)
10-5 Minutos (0–59)
4-0 Seconds/2 (0–29)

Note que segundos se registra sólo a una segunda resolución. La resolución más fina para la creación de archivos se encuentra en offset 0x0d.

0x10 2 Crear fecha. El año, el mes y el día están codificados según el siguiente mapa de bits:
Bits Descripción
15 a 9 Año (0 = 1980, 127 = 2107)
8 a 5 Mes (1 = enero, 12 = diciembre)
4-0 Día (1–31)
0x12 2 Última fecha de acceso; vea offset 0x10 para su descripción.
0x14 2 EA-Index (utilizado por OS/2 y NT) en FAT12 y FAT16, 2 bytes de primer número de grupo en FAT32
0x16 2 Última modificación de la hora; véase offset 0x0e para su descripción.
0x18 2 Última fecha modificada; vea offset 0x10 para su descripción.
0x1a 2 Primer cluster en FAT12 y FAT16. Bajo 2 bytes de primer cluster en FAT32.
0x1c 4 Tamaño del archivo

Trabajar con nombres de archivo cortos en un símbolo del sistema

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.

  1. Un nombre de archivo SFN puede tener a la mayoría de 8 caracteres antes del punto. Si tiene más que eso, el primer 6 debe ser escrito, entonces un tilde ~ como el séptimo carácter y un número (normalmente 1) como el octavo. El número lo distingue de otros archivos con las mismas seis primeras letras y la misma extensión.
  2. Los puntos son importantes y deben ser utilizados incluso para nombres de carpetas (si hay un punto en el nombre de la carpeta). Si hay varios puntos en el nombre largo del archivo/directorio, sólo se utiliza el último. Los puntos anteriores deben ser ignorados. Si hay más caracteres que tres después del punto final, sólo se utilizan los primeros tres.
  3. Generalmente:
    • Cualquier espacio en los nombres de archivo debe ser ignorado cuando se convierte en SFN.
    • Ignora todos los períodos excepto el último. No incluya otros períodos, como los espacios. Utilice el último período si lo hay, y los siguientes caracteres (hasta 3). Por ejemplo, para Manifest, el hombre sólo sería usado.
    • Commas, corchetes, ymicolons, = signos y + signos se cambian a los subrayados.
    • El caso no es importante, el caso superior y los caracteres inferiores se tratan por igual.

Para saber con certeza el SFN o 8.3 nombres de los archivos en un directorio

use: 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 lista DIR original.

En los sistemas operativos basados en Windows NT, los subprogramas del símbolo del sistema (cmd.exe) aceptan nombres de archivo largos con caracteres comodín (signo de interrogación ? y asterisco *); los nombres de archivo largos con espacios en ellos deben escaparse (es decir, encerrarse entre comillas simples o dobles).

A partir de Windows Vista, los comandos de la consola y los subprogramas de PowerShell realizan coincidencias de patrones limitadas al permitir comodines en el nombre de archivo y cada subdirectorio en la ruta del archivo y sustituir silenciosamente la primera entrada de directorio coincidente (por ejemplo, C:>CD prog*inter* cambiará el directorio actual a C:Archivos de programaInternet Explorer).

Contenido relacionado

Airbus a321

El Airbus A321 es un miembro de la familia Airbus A320 de aviones de pasajeros bimotor comerciales de corto y mediano alcance, de fuselaje estrecho; lleva de...

Generador de Fibonacci rezagado

Bluetooth

Más resultados...
Tamaño del texto:
  • Copiar
  • Editar
  • Resumir
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save