|
Langer Dateiname (LFN)
Da wir bereits uns früh in der Wurzelverzeichnis-Diskussion besprochen haben, vorher verwendete das Wurzelverzeichnis, in der Größe geregelt zu werden und in einer örtlich festgelegten Position auf Scheibe sich zu befinden, aber jetzt ist es frei, falls erforderlich zu wachsen, da es jetzt als Akte behandelt wird.
Dieses ist sehr wichtig, sich zu sehnen Dateinamen, weil jeder lange Dateiname mehrfache Einträge in ein Verzeichnis benutzt. Lange Dateinameunterstützung einem Betriebssystem hinzuzufügen, das 8.3 Dateinamen verwendet, ist nicht so einfach wie erweiterneinträge in ein verzeichnis, mehr als 11 Buchstaben zu halten.
Wenn dieses neue Betriebssystem 255 Buchstabe Dateinamen zurückbringt, würden viele ältere Anwendungen, die erwarten, no more als 11 Buchstaben zu empfangen, zusammenstoßen, weil ein Programm Gedächtnis beiseite setzen muß, um die Dateinamen zu speichern, die es liest, und wenn es 16 Bytes für einen Dateinamen und die Betriebssystemkopien (Sagen) 32 Buchstaben in diesen Raum beiseite setzte, dann in andere Daten erhält überschrieben. Eine sichere Weise, eine Anwendung zu brechen ist, gelegentliche Daten in seinen Datenraum zu kopieren.
Um dieses Problem zu überwinden, wurde eine gescheite Lösung in Windows 95, zum Problem des Stützens der langen Dateinamen beim Konservieren von Kompatibilität mit vorhergehenden Versionen DOS und Windows der Anwendungen gefunden.
Wenn die meisten Anwendungen (außer niedrigen Scheibe Dienstprogrammen wie dem Norton Scheibe Doktor) das System für Akte und Unterverzeichnisnamen fragen, tun sie so, nicht indem sie Einträge in ein Verzeichnis direkt weg von der Scheibe, aber lesen, indem das Verwenden der Aufzählungfunktionen, die in das Betriebssystem errichtet werden.
Da wir wissen, daß ein Eintrag in ein Verzeichnis mit der Kombination von Read-only gekennzeichnet wird, versteckt, schreibt System und Datenträgerkennsatz Spitzen zu. Wahrscheinlich wenn das Attributbyte des Eintrags in ein Verzeichnis den Wert 0FH hält, errichteten die Aufzählungfunktionen in alle vorhandenen Versionen von DOS und alles Vor-Windows 95 Versionen von Windows überspringt überschuß dieser Eintrag in ein Verzeichnis, als ob es nicht dort war.
Dann war die Lösung, zwei Namen für jede Akte und Unterverzeichnis, ein kurzer Name zu speichern, der zu allen Anwendungen und zu einem langen Namen sichtbar ist, der nur zu den Anwendungen Windows 95 (und später) und zu den Anwendungen sichtbar ist, die neu geschrieben worden sind, um Unterstützung für lange Dateinamen hinzuzufügen. Kurze Dateinamen werden in 8.3 Formaten in den herkömmlichen 32 ByteEinträgen in ein Verzeichnis gespeichert.
Wir haben bereits uns besprochen, daß Windows einen kurzen Dateinamen von einem langen verursacht, indem es es zu sechs Versalienbuchstaben beschneidet und „~1“ dem Ende des niedrigen Dateinamens hinzufügt.
Wenn es bereits einen anderen Dateinamen mit den gleichen ersten sechs Buchstaben gibt, wird die Zahl erhöht. Der Verlängerung wird die selben gehalten, und jeder möglicher Buchstabe, der in den früheren Versionen von Windows und von DOS ungültig war, wird mit einem Unterstreichen ersetzt.
Die langen Dateinamen werden in den besonders formatierten lang Einträgen in ein Verzeichnis des Dateiname-32-Byte (LFN) gespeichert, die mit den Attributbytes gekennzeichnet werden, die auf 0FH eingestellt werden. Für eine gegebene Akte oder ein Unterverzeichnis geht eine Gruppe einer oder mehrer langer DateinameEinträge in ein Verzeichnis sofort den einzelnen 8.3 Eintrag in ein Verzeichnis auf der Scheibe voran.
Jeder lange DateinameEintrag in ein Verzeichnis enthält bis 13 Buchstaben des langen Dateinamens, und das Betriebssystem reiht zusammen so viel auf, wie erforderlich, um einen gesamten langen Dateinamen zu enthalten.
Für einen langen DateinameEintrag in ein Verzeichnis werden Dateinamen im Unicode Format gespeichert, das 2 Bytes pro Buchstaben im Vergleich mit 1 Byte ASCII erfordert. Dateinamebuchstaben werden unter drei unterschiedlich auffängt verbreitet:
- Die ersten 10 Bytes (fünf Buchstaben) in der Länge,
- Die zweiten 12 Bytes (sechs Buchstaben),
- Die dritten 4 Bytes (zwei Buchstaben).
Die niedrigsten fünf Bits des ersten Bytes des Eintrag in ein Verzeichniseinflußes, den, eine Folgenummer, die die Position des Eintrags in ein Verzeichnis im Verhältnis zu anderen langen DateinameEinträgen in ein Verzeichnis kennzeichnet, mit der gleichen Akte verband.
Wenn ein langer Dateiname drei LFN Einträge in ein Verzeichnis erfordert, ist die Folgenummer von der ersten 1, das der Sekunde 2 ist, und die Folgenummer des Third ist 3 und gebissene 6 des ersten Bytes der dritten Eintragung wird bis 1 eingestellt, um anzuzeigen, daß es die letzte Eintragung in der Reihenfolge ist.
Das Attribut fangen erscheint an der gleichen Position in den LFN Einträgen in ein Verzeichnis wie in 8.3 Einträgen in ein Verzeichnis auf, weil das Dateisystem nicht weiß, welche Art des Eintrags in ein Verzeichnis sie bis beschäftigt, nachdem sie das Attributbyte überprüft. Die beginnende Blockzahl fangen erscheint auch an der gleichen Position auf, aber in den LFN Einträgen in ein Verzeichnis ist sein Wert immer 0. Die Art Anzeige fangen hält auch 0 in jedem langen Dateinamen auf.
Eins der Probleme mit langen Dateinamen ist, daß sie mehr Speicherkapazitaet als die kurze verbrauchen. Das ist nicht ein grosses Abkommen, wenn lange Namen in den Unterverzeichnissen gespeichert werden, weil, solange Speicherkapazitaet vorhanden ist, Unterverzeichnisse sich entwickeln können, unterbringen addierte Einträge in ein Verzeichnis, aber die Höchstzahl der Einträge in ein Verzeichnis, die im Wurzelverzeichnis vorhanden sind, ist überschüssiger Raum der örtlich festgelegten und langen Dateinamen im Wurzelverzeichnis, das in der Größe begrenzt wird.
Jetzt zum Beispiel, wenn das Wurzelverzeichnis von Festplatten höchstens 512 Einträge in ein Verzeichnis, weil ein Namens Buchstabe 128 11 Eintragungen erfordert, 10 für den langen Namen und 1 für den kurzen Namen enthält, könntest du nur 46 Akten und Unterverzeichnisse im Wurzelverzeichnis verursachen, wenn jedes einen 128 Buchstabe Namen gegeben wurden.
Das Problem geht für FAT32 auch weg, weil das Wurzelverzeichnis unter FAT32 außerdem wachsen kann, weil im System FAT32 das Wurzelverzeichnis während eine Akte behandelt wird, die in der Größe wachsen kann.
|
|