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 ?
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
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 ?
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.