Zitat von Peter Lehner
Ich denke, das 8.3-Format kannst du langsam vergessen! Dieses Format behindert mehr als jemanden bringt. Darum denke ich, dass Tim's Idee nicht schlecht ist, aber es braucht noch eins, zwei Korrekturen.
Das sehe ich etwas anders. Solange Du nur mit einer Plattform zu tun hast,
die schon immer und nativ lange Dateinamen unterstützt, gibt es natürlich
überhaupt keine Probleme. Aber in der Praxis ergibt sich ja häufig das Problem,
daß man Dateien zwischen verschiedenen Systemwelten und Dateisystemen
hin- und herbefördern muß oder in einem möglicherweise heterogenen
Netzwerk ablegen möchte. Da gibt es dann immer wieder Schwierigkeiten,
wenn unterschiedliche Systeme unterschiedliche Namenslängen und
Zeichensätze zulassen, die man dann on-the-fly konvertieren muß,
was leider nicht immer ohne Konflikte gelingt.
Und wenn gar noch eine Plattform ins Spiel kommt, bei der lange Dateinamen nur
als "Aliasnamen" für die kurzen Dateinamen entsprechend der 8.3-Konvention
realisiert sind, ist das potentielle Chaos nicht mehr weit. Dazu zählen u.a. - aber
nicht ausschließlich - sämtliche Systeme, die lange Dateinamen auf FAT-Partitionen
abbilden. Windows benutzt z.B. sehr abenteuerliche Methoden, um einen langen
Dateinamen an eine Datei mit einem kurzen Namen zu heften.
Aufgrund der Methode, wie lange Dateinamen für alte Systeme "unsichtbar"
im FAT-Format untergebracht werden, kommt es in der Praxis immer wieder
mal vor, daß "plötzlich" eine ganz andere Datei mit einem langen Dateinamen
assoziiert wird, als die, zu der er eigentlich gehörte. Die Ursachen dafür sind
vielfältig, aber systemimmanent aufgrund von fundamentalen Fehlern im Design.
Auch kommt es immer wieder vor, daß unter bestimmten Bedingungen die langen
Dateinamen verloren gehen, und der Benutzer nur noch über die kurzen Namen
auf die Dateien zugreifen kann - schön, wenn die dann aussagekräftige Namen
wie "20060112" haben und nicht "200~1498".
Windows arbeitet da zum Teil mit heuristischen Methoden, in etwa nach dem
Motto, "wahrscheinlich war es jetzt diese Datei hier, zu der dieser lange
Dateiname gehört, also nehme ich die mal". Ich will jetzt nicht allzusehr in
Details gehen (bei Bedarf privat gerne mehr), aber als wir damals VFAT-
kompatible lange Dateinamen für DR-DOS implementiert haben, mußten wir
die LFNs auch noch mit DR-DOS' Löschverfolgung DELWATCH und dem unter
DR-DOS traditionell verfügbaren Zugriffsschutz (mit datei- und verzeichnis-
basierten Paßwörtern, Read/Write/Delete/Execute-Accessrights und
World/Group/Owner-IDs) unter einen Hut bringen, wofür wir auch selbst
schweren Herzens auf einige heuristische Methoden ausweichen mußten,
anhand derer der Kernel zu erkennen versucht, mit was für einer Sorte von
Verzeichniseintrag er es gerade zu tun hat. Freundlicherweise hatte Microsoft
für lange Dateinamen nämlich den gleichen Trick mit dem Volume-Attribute
aufgegriffen, mit dem Digital Research/Novell schon lange vorher Informationen
unsichtbar für den Benutzer im FAT-Dateisystem gespeichert hat. Besonders
erquicklich daran war noch, daß sie sich genau diese Methode auch noch haben
patentieren lassen, ohne in der Patentschrift diese prior art zu erwähnen...
Aber von dieser konfliktträchtigen Mehrfachnutzung mal abgesehen, ist mir
beim Studium der offiziellen VFAT-Spec das kalte Grausen gekommen, enthält
sie doch direkt mehrere grundsätzliche und damit leider auch nicht korrigierbare
Designfehler, die Microsoft in ihrer Implementation durch verschiedene Ansätze
auf höherer Ebene zu kaschieren versucht hat. Statt die Sache direkt richtig bis
zu Ende zu durchdenken, denn mit gleichem Implementationsaufwand wäre
auch ein absolut sicheres und obendrein noch vollständig mit allen FAT-Systemen
kompatibles Design möglich gewesen... :-(
Was ich sagen will, auch wenn das in der Praxis in der Regel funktioniert,
man kann sich auf einem FAT-Volume nicht darauf verlassen, daß ein langer
Dateiname wirklich immer auf die richtige Datei zeigt und zweitens, daß er
nicht unter bestimmten Bedingungen auch ganz verloren gehen kann.
Deshalb empfehle ich immer, auch auf Systemen, die lange Dateinamen
unterstützen, solche zu wählen, die ins 8.3-Format passen würden - zumindest
solange nicht zwingend etwas dagegen spricht.
Das native CD-Dateisystem (ISO 9660) ist sogar noch deutlich restriktiver
als FAT, was die erlaubten Zeichen, die Tiefe der Verzeichnisse und die
Namenskonventionen für Unterverzeichnisse angeht. Natürlich ist es möglich,
die langen Dateinamen für den Benutzer transparent als Meta-Informationen
(Rockridge, Joliet) zu speichern, aber das funktioniert eben auch nur solange
gut, wie es funktioniert. ;-)
Solange Tim seine Dateien nur auf z.B. NTFS kopiert, nur Programme einsetzt,
die mit langen Dateinamen zurechtkommen und auch später nie wieder in die
Verlegenheit kommt, auf FAT- oder ISO-basierte Systeme umkopieren zu
müssen, braucht er sich über sowas natürlich keine Gedanken machen.
Viele Grüße,
Matthias