Forum: Mikrocontroller und Digitale Elektronik FAT Dateisystem


von Benedikt (Gast)


Lesenswert?

Ich bin gerade dabei einen Compact Flash Reader zu programmieren.
Im Moment bin ich beim Dateisystem. Beim Lesen des Root habe ich ein
Problem:
Es gibt 511 Einträge, von denen jeder 32Bytes lang ist.
An fast jeder 2. Position steht die lange Version des Dateinamens. Aber
eben nur fast.
Woran erkenne ich jetzt, ob die Daten die in jedem Eintrag stehen,
wirklich eine Datei sind, oder ein anderer Eintrag ?

von Gerhard Gunzelmann (Gast)


Lesenswert?

hallo benedikt

wenn ich mich richtig erinnere gibts nur 2 Möglichkeiten, entweder es
ist ne Datei oder ein Pfad, und die beiden unterscheiden sich in einem
Bit der Flags: das 'D' steht für Directory, wenn's nicht gesetzt
ist, ist es eine datei

gruß
gerhard

von Benedikt (Gast)


Lesenswert?

Und wenn es keines von beidem ist ?
Es gibt 512 Plätze für Dateien oder Verzeichnisse. Ich habe aber nur 6
Dateien. Woran erkenne ich jetzt, ob der Eintrag belegt ist, oder ob da
nur Datenmüll steht ?

von Gerhard Gunzelmann (Gast)


Lesenswert?

Ich nehme an, daß Du nicht über ein Beriebssystem liest, sondern einen
Hardware-Zugriff machst, denn wenn Du über ein Betriebssystem liest,
kriegst Du nur gültige Dateien bzw Pfade. Das ist so lang her, daß ich
damit gearbeitet habe... Also da war was mit dem 1. zeichen. ich denke
es ist 0 wenn der Eintrag gültig ist und E5 wenn der Eintrag
ungültig/gelöscht ist. das 1.zeichen ist das zeichen, das vor dem Namen
(dateiname/pfad) steht.

Gerhard

von Matthias (Gast)


Lesenswert?

Hi0

du gehst sämtliche möglichen Einträge durch bis du auf einen triffst
dessen erstes Zeichen des 8.3 Dateinamens 0x00 ist. Dann sind sämtliche
Einträge beendet. Triffst du auf einen Eintrag dessen 8.3 Dateiname mit
0xE5 beginnt ignorierst du diesen Eintrag. Triffst du auf einen Eintrag
der die Attribute READ_ONLY, HIDDEN, SYSTEM und VOLUME_ID gesetzt hat
ist dieser Eintrag Teil eines langen Dateinames.

Matthias

von Benedikt (Gast)


Lesenswert?

Danke ! Das war genau das nachdem ich gesucht habe !

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.