Gast
#1801938
Hallo zusammen, ich schreibe gerade einen kleinen FAT16/32 Treiber, der mit möglichst wenig RAM und ohne dynamische Allokationen auskommen muss. FAT-Code gibts zwar wie Sand am Meer, aber ein Großteil unterstützt entweder garkeine LFNs oder ich werde nicht schlau draus. Die Micro$oft Spezifikation geht zwar drauf ein, beantwortet mir aber folgende Frage nicht: Ein LFN-entry in einem Directory wird ja als zu einem Shortfilename(SFN) zugehörig identifiziert per 8Bit-Checksumme, die aus dem SFN generiert wird. Aber spätestens ab 257 Dateien kommt es in dem Raum doch zu kollisionen und bei 50 Dateien ist die Wahrscheinlichkeit schon >99%. Das ist natürlich nicht soooo der Hit. Mir werden bei einem Listing von großen Ordnern dann viele LFNs doppelt oder mehrfach angezeigt. Dann hatte ich überlegt, dass ich die Longnames in Shortnames konvertiere und wenn das nicht übereinstimmt, sehe ich nach dem nächsten LFN eintrag. Wenn es aber dann mit nummerierten SFNs a la "FOOBAR~6TXT" losgeht, funktioniert das auch nicht mehr (die lassen sich ja nicht deterministisch alleine aus dem LFN erzeugen). :/ Also meine Frage: Wie komme ich eindeutig an die LFNs dran?