Forum: Mikrocontroller und Digitale Elektronik FAT16 und Ordnerverwaltung


von fubu1000 (Gast)


Lesenswert?

Hallo mein Lieblingsforum,
habe ein Problem, und zwar will ich gespeicherte Daten auf einer 1GB 
grossen SD-Karte auslesen, welche in Ordner sortiert sind.
Nun ist mein Problem das wenn ich ohne Ordner arbeite, alles kein 
Problem ist(durch ROOT-Directory gehen und Dateien raussuchen).
Jedoch kapier ich nicht wie ich die Ordner auf dem Medium finde und die 
dazugehörigen Dateien???
Vielen Dank im voraus und Gruss, fubu.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nun, ein Verzeichnis kannst Du ja schon mal lesen (das Root-Directory).

Zu jedem Verzeichniseintrag wird ein Attribut gespeichert, und ein Bit 
davn weist darauf hin, daß die betreffende Datei wiederum ein 
Verzeichnis ist.

Um nun herauszufinden, welche Dateien im betreffenden Verzeichnis sind, 
musst Du Dir genauso wie beim Lesen einer Datei aus dem 
Verzeichniseintrag die Cluster-Kette bestimmen, Cluster für Cluster 
lesen und die gelesenen Daten exakt genauso interpretieren wie das 
Root-Directory.

Ja, das ist rekursiv.

von fubu1000 (Gast)


Lesenswert?

hallo,
nur damit ichs richtig verstehe ich suche z.B. nach dem Ordner 
"ORDNER1".
1.)Also schaue ich in der ROOT- Directory nach dem Wort "ORDNER1".
   Darin  ist dann ein Bit gesetzt, welches mir anzeigt, das dies ein
   Verzeichnis ist(welches Bit???, wahrscheinlich eins in den 
Dateiattri-
   buten, aber welches, ARCHIVE-BIT???).

2.)Byte 27 und 28 von der ROOT-Directory zeigen mir an wo das erste 
Cluster
   ist und 29-32, die Grösse des Ordners "ORDNER1"(wobei ich mich noch
   frage, ob die anzahl der dateien in der Grösse stehen, oder die wirk-
   liche Grösse des ORDNERS1???)

3.)Lese die Clusterkette ,die mir Byte 27 und 28 der ROOT-Directory 
vorge-
   geben haben nun aus. Dies sind nun die Stellen in der ROOT-Directory, 
wo
   die Dateien des Ordners sind, oder versteh ich das falsch???

3.1.)oder ich lese die Clusterkette aus und schau dann in Datenbereich 
mir
    die entsprechenden Einträge an und behandle diesen Datenbereich wie
    die ROOT-Directory Einträge, also immer 32byte=ein 
Verzeichniseintrag??

Schonmal vielen Dank im voraus, Gruss fubu.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nein, nicht das Archiv-Bit, sondern das Directory-Bit.


  read-only: 01
  hidden:    02
  system:    04
  directory: 10
  archive:   20

Die Größenangabe ist die Größe des Verzeichnisses, also die Anzahl der 
enthaltenen Dateien mal der Größe eines Verzeichniseintrages (32 Bytes).

Was Du unter 3. liest, ist das Verzeichnis, NICHT die im Verzeichnis 
enthaltenen Dateien. Du musst das also wie in 3.1 behandeln.

von Obelix (Gast)


Lesenswert?

Wieder einer der google nicht benutzen kann.

http://www.microsoft.com/whdc/system/platform/firmware/fatgen.mspx

von fubu1000 (Gast)


Lesenswert?

hallo,
vielen dank RUFUS für deine Mühe ;-)
gruss fubu

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.