www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik FAT Dateisystem


Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Gerhard Gunzelmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Gerhard Gunzelmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke ! Das war genau das nachdem ich gesucht habe !

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.