Sie sind auf Seite 1von 3

Presupuesto

Nombres de archivos largos VFAT


Uso: Almacena nombres de archivo largos (LFN) para Windows

Introducción
Este no es un sistema de archivos en sí mismo, sino un tipo de sistema de subarchivos, que puede colocarse sobre un
sistema de archivos FAT12, FAT16 o FAT32. El sistema VFAT es una forma de ocultar nombres largos de archivos en la
estructura de directorios de los sistemas de archivos FAT.

Los nombres de archivo se almacenan usando caracteres unicode que tienen una longitud de 16 bits.

Coexistencia con FAT12, FAT16 y FAT32


Dependiendo de la longitud del nombre de archivo largo, el sistema creará una cantidad de entradas inválidas de 8.3 en la
Tabla de Directorio, estas son las entradas LFN (Long Filename). Estas entradas LFNse almacenan con la última entrada
LFN en la parte superior y la primera entrada LFN justo encima de una entrada válida en el directorio. Entonces, cuando se
mira desde arriba y hacia abajo, la tabla de directorios se ve más o menos así:

Ejemplo de directorio
Entrada Nr. Sin entradas LFN Con entradas LFN
... ... ...
norte Normal 1 Normal 1
n+1 Normal 2 LFN para Normal 2 - Parte 3
n+2 Normal 3 LFN para Normal 2 - Parte 2
n+3 Normal 4 LFN para Normal 2 - Parte 1
n+4 Normal 5 Normal 2
n+5 Normal 6 Normal 3
... ... ...

Las entradas LFN tienen configurados los indicadores de nombre de volumen, oculto, sistema y de solo lectura. Por lo tanto,
la mayoría de los programas no los mostrarán debido a la bandera del Nombre de Volumen (las entradas de Volumen
raramente se muestran), y no serán ignorados debido al indicador de Solo lectura.

Entradas de directorio
El formato de directorio VFAT, puede coexistir en un sistema FATxx normal. Las entradas de LFN están ocultas de los
programas normales y están disponibles para aquellos que saben cómo leerlas. Pero además de las entradas de LFN, el
formato de directorio de VFAT mejora la estructura original de la tabla de directorio como se encuentra en FAT16. La tabla
de directorio todavía puede ser leída por aplicaciones antiguas, pero todo el espacio no utilizado del formato FAT16 ahora
se usa para almacenar información adicional. Este es el formato de las entradas del Directorio VFAT:

Estructura de las entradas de directorio de VFAT


Compensar tamaño Descripción
00h 8 bytes Nombre del archivo
08h 3 bytes Extensión de nombre de archivo
0hb 1 bytes Byte de la bandera
0CH 1 bytes NT - Reservado para Windows NT - Siempre debe ser 0000h
0Dh 1 bytes Tiempo de creación: milisegundo
0Eh 2 bytes Tiempo de creación - Hora y minuto
10h 2 bytes Fecha de creación
12h 2 bytes Último acceso a los datos
14h 2 bytes Grupo de inicio (palabra alta) en los sistemas de archivos FAT32, de lo contrario 0000h
16h 2 bytes Hora
18h 2 bytes Fecha
1Ah 2 bytes Grupo de inicio (palabra baja)
Estructura de las entradas de directorio de VFAT
Compensar tamaño Descripción
1CH 4 bytes Tamaño del archivo en bytes

Flag Byte
El byte de indicador define un conjunto de indicadores que se establece para directorios, nombre de volumen, archivos
ocultos, archivos de sistema, etc. Estos son los indicadores:

Banderas en el byte de la bandera


7 6 5 4 3 2 1 0
No usado A re V S H R 0000h

Bandera lograda
El indicador A se establece mediante un programa de respaldo, de modo que el usuario / programa sepa de qué archivos se
ha hecho una copia de seguridad. Muchos usuarios y tal vez muchos sistemas operativos no utilizan correctamente este
indicador.

Sistema
Este indicador muestra que el archivo / directorio es importante para el sistema y no debe ser manipulado.

Oculto
Este indicador indica al sistema y a los programas que el archivo debe estar oculto para el usuario. Pero en muchos
programas esto puede ser sobrescrito por el usuario.

Solo lectura
El indicador se usa para evitar que los programas no sobrescriban o eliminen automáticamente este archivo / directorio.

Directorio
Este indicador se establece cuando una entrada en la tabla de directorio no apunta al comienzo de un archivo, sino a otra
tabla de directorio. Un subdirectorio El subdirectorio se coloca en el clúster, donde el campo Clúster de inicio apunta a. El
formato de esta tabla de subdirectorios es idéntico a la tabla de directorio raíz.

Nombre del volumen


Cuando se establece este indicador, la entrada del directorio no apunta a un archivo, sino a nada. La única información
utilizada desde esta entrada es el nombre de archivo (8 bytes) más la extensión del nombre de archivo (3 bytes). Estos
bytes forman una etiqueta de volumen de 11 bytes de longitud (sin ninguno). Puede haber solo una entrada válida en todo
el disco con este conjunto de indicadores. Y preferiblemente, esta entrada debe estar entre las primeras 3 entradas en la
tabla del directorio raíz, de lo contrario, MS-DOS puede tener problemas para mostrar la etiqueta de volumen correcta. Este
nombre de volumen debe ser el mismo que el del sector de inicio. El último es de hecho raramente utilizado.

Entrada LFN
Las entradas LFN se ubican, como se describe, arriba de la entrada del directorio real, para lo cual contienen el nombre de
archivo largo. Las primeras 13 letras están en la primera entrada, las letras 14-26 están en la segunda entrada LFN, las
letras 27-39 están en la tercera entrada LFN, y así sucesivamente hasta que el nombre del archivo haya finalizado. La
longitud máxima de un nombre de archivo se ha limitado a 255, aunque este esquema tiene el potencial de convertirlos en
1664 bytes de longitud, Microsoft, que diseñó FAT32, decidió no hacerlo. La estructura de cada entrada de LFN es la
siguiente:

Estructura de una entrada LFN


Compensar tamaño Descripción
00h 1 bytes Campo ordinal
01h 2 bytes Carácter Unicode 1
03h 2 bytes Carácter Unicode 2
05h 2 bytes Carácter Unicode 3
07h 2 bytes Carácter Unicode 4
09h 2 bytes Carácter Unicode 5
0hb 1 bytes Byte de la bandera
0CH 1 bytes Reservado - Siempre 00h
0Dh 1 bytes Checksum
Estructura de una entrada LFN
Compensar tamaño Descripción
0Eh 2 bytes Carácter Unicode 6
10h 2 bytes Carácter Unicode 7
12h 2 bytes Caracteres Unicode 8
14h 2 bytes Carácter Unicode 9
16h 2 bytes Carácter Unicode 10
18h 2 bytes Carácter Unicode 11
1Ah 2 bytes Siempre 0000h
1CH 2 bytes Carácter Unicode 12
1Eh 2 bytes Carácter Unicode 13

Solo la palabra del clúster (offset 1Ah) y el byte del indicador (offset 0Bh) son necesarios por razones de compatibilidad.

Campo ordinal
El campo ordinal se utiliza para indicar al sistema qué número tiene la entrada LFN, en la cadena LFN. La primera entrada
de LFN tendrá un valor de 01h. La segunda entrada LFN, si hay una, tendrá un valor de 02h, y así sucesivamente. Cuando
una entrada LFN contiene el último carácter en el nombre, se establece el último bit LFN (bit 6 en el campo ordinal).

El campo ordinal
7 6 5 4 3 2 1 0
LFN eliminado Último LFN Número LFN 0000h

Cálculo del Checksum


El byte Checksum en cada entrada LFN está allí para asegurarse de que la entrada LFN apunta al archivo correcto. El valor
de suma de comprobación se calcula sobre la base del nombre de archivo 8.3, que está presente en la entrada válida de la
tabla de directorio. Los espacios (ASCII: 20h) también se calculan. El algoritmo para calcular la suma de comprobación es:

1. El valor ASCII del primer caracter es la suma base.


2. Gire la suma bit a bit un bit hacia la derecha.
3. Agregue el valor ASCII del siguiente carácter a la suma.
4. Repita los pasos 2 y 3 hasta que se hayan agregado los 11 caracteres.

Personajes Unicode
Los caracteres Unicode en la especificación son un valor de 16 bits, donde los 8 bits inferiores representan el valor ASCII
respectivo y los 8 bits superiores son claros. Esto significa que los nombres LFN son solo nombres de estilo ASCII, con
agujeros adicionales.

Conclusión
El formato de directorio VFAT es una manera muy inteligente de agregar soporte de nombre largo a los sistemas de
archivos FAT más antiguos, a la vez que se mantiene la compatibilidad. Sin embargo, es extraño por qué Microsoft (que
diseñó FAT32) no implementó soporte nativo para nombres de archivo largos en FAT32 cuando lo crearon hace unos años.

Das könnte Ihnen auch gefallen