Hello Vinzenz,
wieso denn das. Ob ein Cluster verfügbar ist oder nicht, das wird ausschließlich anhand der FAT-Einträge ermittelt.
Du bringst mich ganz durcheinander...
Am Anfang hängen alle verfügbaren Cluster als verkettete Liste hintereinander.
Je nachdem, ob FAT12, FAT16 oder FAT32 verwendet wird, ergeben sich die Zuordnungen
Cluster<->FAT-Eintrag
direkt aus der Position in der FAT (position equals cluster number) oder eben über Berechnung. Zumindest ist jedem "Datensatz" in der FAT direkt ein Cluster zugeordnet.
Wenn jetzt in einem Verzeichnis eine Datei angelegt wird, wird Ein Cluster aus der Hauptkette herausgenommen und sein Index in den Dateieintrag geschrieben. Diese Datei zeigt jetzt also auf ihr Startcluster. Dieses Startcluster erhält in seinem korrespondierenden FAT-Datensatz den Eintrag "LC/F" = "Last Cluster in File" =
FAT12: 0xFF8 - 0xFFF
FAT16: 0xFFF8 - 0xFFFF
FAT32 0x?FFFFFF8 - 0x?FFFFFFF
Wenn nun eine neue Datei im Verzeichnis angelegt werden soll, wir erst geschaut, ob es gelöschte Files gibt (Erstens Zeichen = 0x05, wenn ich nicht irre) und die dann wiederverwendet.
Die Fileinformationen stehen in Directory-Files, die zu Datensätzen à 32 Bytes organisiert sind.
Wenn nun ein File gelöscht wird, wird _nicht_ die Clusterkette zurückgegeben an die Hauptkette, sondern sie belibt ungenutzt liegen, bis zufällig in diesem Directory wieder ein File angelegt werden soll.
Was passiert aber nun mit der Restcluster-Kette, wenn das neue File weniger Platz benötigt, als das alte? Die könnte nämlich erstens als "Luschenfile" im Directory verbleiben, oder aber sie könnte der Hauptclusterkette zurückgegeben werden.
Soviel Zeit hatte ich aber weder gestern noch heute, dies qualifiziert in
http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx
nachzulesen.
Ich habe auch immer nur ein File angelegt und diese dann nach Gebrauch gleich wieder gelöscht, bevor ich das nächste Temporärfile angelegt habe. Da lag also mein Trugschluss, dass die Chain of Directory Entries (mit den enthaltenen Filenamen) immer länger werden würde.
Bei den zu bearbeitenden Datenmengen muss ich allerdings auf "Hardwareverträglichkeit" achten.
Übrigens haben mich Svens und Martins Betrachtungen noch auf neue gute Ideen gebracht, ...
Die Identifikation der untersuchten Files wird immer besser :-))
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
