Au prix de quelques points de santé mentale...
Plop !
 
> > En FAT32, c'est réalisable (et réalisé) au prix de
> > quelques points de santé mentale...
>
> C'est a dire ?

Tu devrais tenter le coup. Utilise un bon éditeur de secteurs, regarde les
directory entries dans un répertoire où tu as placé quelques fichiers avec
des noms longs, et admire...

C'est fait par des cochons.

Par exemple, pour représenter le fichier de nom
"toto a un gros nez et des feuilles de choux.jpg", voici comment c'est
réalisé:
 - on découpe le nom en portions de 13 caractères de long. On a ici 4
   portions:
    "toto a un gro"
    "s nez et des "
    "feuilles de c"
    "houx.jpg"
 - on les numérote dans l'ordre inverse de leur ordre normal, et en
   utilisant des lettres au lieu des nombres, en commençant par 'A':
    D"toto a un gro"
    C"s nez et des "
    B"feuilles de c"
    A"houx.jpg"
 - on exprime les caractères sur 2 octets (pour le français, le deuxième
   octet est 0)
 - on copie chaque portion dans un directory entry, on met à 1 quelques
   bits qui conduiraient normalement à un fichier invalide (je ne me
   souviens plus exactement, mais on dit à la fois qu'il s'agit d'un
   répertoire, d'un nom de volume, d'un fichier
   caché+système+read-only...), on indique comme premier numéro de cluster
   le 0. On peut placer 13 caractères là où on en plaçait 8+3 avant parce
   qu'on utilise des zones affectées normalement à d'autres usages (comme
   les dates/heures de création et dernière modif, par exemple).
 - on crée un nom court unique pour ce fichier (un nom court est un nom
   qui tient en 8+3 caractères), en prenant le début du nom, un tilde '~',
   et un numéro incrémenté selon les besoins
 - on écrit ce nom court dans un directory entry, on met les bits
   précédemment mentionnés à un état cohérent, et on indique son vrai
   premier numéro de cluster, ses vraies dates/heures, ...
 - on écrit le tout sur le disque, les faux directory entries d'abord, le
   vrai ensuite (l'ordre est important, ça permet de lier le nom long et
   le nom court correspondant)

Si ça c'est pas de la bidouille type scotch et ficelle....


D'ailleurs, j'ai fait une petite erreur au tout début, voici un erratum:
On ne peut pas avoir des noms de plus de 8+3 caractères en FAT12/16
*de base*, c'est faisable avec ce que Linux appelle la vfat et sous
Windows95 (et plus), même si le système sous-jacent est une FAT12/16, et
c'est également faisable en FAT32, de la même manière...

Ce que j'ai décrit plus haut, c'est justement la vfat...

--
Erwann ABALEA


 
listePlop !.TXT