Complément d'informations sur les
noms LFN
Depuis l'apparition de Win9x, les noms de
fichiers peuvent dépasser les 8 caractères. Mais comment cela
est-il géré par le SGF FAT ? Les fichiers avec un nom de fichier
long (Long File Name) peuvent occuper plusieurs entrées dans la Root
Directory. Cette page a pour objectif de vous donner un aperçu de cette
gestion
Entrée dans la root
directory - fichier Long File Name (LFN)
Voici un extrait d'un des secteurs de la root directory
:
Chaque entrée est sur 32 octets. Ici, nous sommes en présence
d'un nom de fichier long appelé 'Nouveau Document texte.txt'. Une entrée
est générée avec un nom de fichier court 'NOUVEA~1.TXT'.
Cela correspond aux octets situés de l'offset 40h à 5Fh. Puis
en remontant, nous trouvons les entrées occupées par le nom de
fichier long. Sachant que dans une entrée de 32 octets, il n'est possible
de stocker que 13 caractères du nom long, il faut plusieurs entrées
pour stocker toutes les lettres composant le long file name. Dans notre exemple,
le nom de fichier LFN étant sur 26 caractères (extension comprise),
nous aurons besoin de 2 entrées. La première (qui contient les
13 premiers caractères du LFN) s'étend des offset 20h à
3Fh. L'entrée suivante est juste au dessus, de 00h à 1Fh. A chaque
fois, les entrées LFN sont empilées sur l'entrée DOS 8+3.
Cliquer sur l'un des rectangles pour connaître le rôle
des zones figurant dans cette entrée. La numérotation
sera relative par rapport au début des octets de
l'entrée.
L'entrée NOM
COURT généré
L'entrée nom court respecte la description standard
des noms DOS 8+3.
L'entrée Long
File Name
L'entrée LFN s'étend sur 32 octets MAIS, le
rôle de ces octets est différent de ceux d'une
entrée standard des noms DOS 8+3..
1 ère
entrée LFN pour "Nouveau Document texte.txt"
Cliquer sur les rectangles (vert/orange) pour voir le rôle
des octets.
2 ème et
dernière entrée LFN pour "Nouveau Document
texte.txt"
Cliquer sur les rectangles (vert/orange) pour voir le rôle
des octets.
Entrée 1
|
Explications
|
Entrée 2
|
Octet Séquence
01h
|
Octet Séquence. Nombre
hexadécimal spécifiant l'ordre de
lecture des entrées LFN. Les 5 bits de poids
faibles indiquent le numéro d'ordre. (donc
valeur allant de 1 à 31 en décimal).
Le bit de poids 6 est mis à '1' quand
l'entrée est la dernière.
Ainsi, à gauche, pour l'entrée
1, l'octet séquence est à
01h, donc nous
sommes en présence de la première
entrée.
A droite, pour l'entrée 2, l'octet séquence
est à 42h soit en binaire 0100 0010. Donc
nous sommes en présence de la deuxième entrée
(0000102 = 210).
C'est la dernière, car le bit de poids 6 est à '1'.
|
42h
|
|
5 caractères du nom
4E006F00750076006500
Nouve
|
Dans la première entrée, cela correspond aux 5
premiers caractères du Long File Name sur 10 octets. Les
codifications utilisent l'UNICODE. Pour les entrées
suivantes, ces octets permettent de 'stocker' les caractères
suivants si nécessaires.
A gauche, pour l'entrée 1, cela donne le début
du nom du fichier.
A droite, pour l'entrée 2, nous avons la suite
des caractères du nom du fichier.
|
65006E00740020007400
ent t
|
|
Attribut
0F
|
Cet octet qui sert pour définir les
attributs dans le cadre des noms DOS 8+3 est
toujours initialisé à 0Fh dans les
entrées LFN
|
0F
|
|
Octet réservé
00
|
Cet octet est réservé.
|
00
|
|
Octet réservé
6F
|
Cet octet est réservé pour un test
de contrôle.
|
6F
|
|
6 caractères du nom
61007500200044006F006300
au Doc
|
Cela correspond aux 6 caractères suivants
du Long File Name sur 12 octets (toujours en
UNICODE)
|
65007800740065002E007400
exte.t
|
|
Premier cluster
0000
|
Ces 2 octets qui servent pour définir le numéro
du premier cluster dans le cadre des noms DOS 8+3 sont initialisés
à 0000h dans les entrées LFN
|
0000
|
|
2 caractères du nom
75006D00
um
|
Cela correspond éventuellement à 2
autres caractères du Long File Name sur 4
octets (toujours en UNICODE)
|
78007400
xt
|
|
|