DrScott
Ehemalige
Anmeldungsdatum: 7. Juli 2005
Beiträge: 6018
|
kaputtnik schrieb: Ja, da stehe ich n bisschen auf dem Schlauch. Hier hießt es "4,032 bytes/255 characters"... woanders wird nur von Bytes geschrieben. Wat nu? 😲 Ich hatte es so verstanden, das "255" Zeichen immer möglich sind, egal welche Kodierung man nutzt.
Bin auf der englischen Wikipediaseite zu ReiserFS wohl fündig geworden: http://en.wikipedia.org/wiki/ReiserFS Dort heißt es: 4032 bytes, limited to 255 by Linux VFS
Obwohl ReiserFS 4032 Bytes unterstützen würde, ist bei Linux der limitierende Faktor das Virtual File System. Ja ja, noch ein Dateisystem... 😉 Nein, kein echtes Dateisystem. Eine Abstraktionsschicht: Es ist ja so, dass man ein Dateisystem in ein anderes Dateisystem einhängen kann, eben dass, was man unter Mounten versteht. Das geht natürlich nicht einfach so. Da kommt diese Schicht in Spiel. Es bringt alle Dateisystem auf einen Nenner. Hier steht was dazu: http://sunsite.nus.sg/LDP/LDP/tlk/node102.html VFS ermöglicht uns eigentlich, diese Spalte komplett zu streichen,oder? Mehr als 255 Bytes gehen nicht. Punkt. Interessant wird es erst, wenn man noch Dateisysteme aufnehmen würde, die weniger beherrschen. Ich habe mal spaßeshalber ein Minix-Dateisystem erstellt:
$ sudo touch 0123456789012345678901234567890
touch: kann „0123456789012345678901234567890“ nicht berühren: File name too long
Lustig, 31 Zeichen (Autsch! Bytes) sind zu lang 😉
Der Dateiname "頁頁頁頁頁頁頁頁頁頁" geht gerade noch. Bei "頁頁頁頁頁頁頁頁頁頁a" ist bereits Schluß. Und ja, "頁" ist ein 3-Byte Zeichen noisefloor schrieb: bei ReiserFs ist wohl richtig "4032 Byte, aber max 255 Zeichen" - 255 4-Byte Zeichen sind doch 4032 Byte, oder? 😇
Du hättest Festplattenhersteller werden sollen 😉
|
kaputtnik
Anmeldungsdatum: 31. Dezember 2007
Beiträge: 9245
|
So hab, mal wieder überarbeitet... Bitte schauts Euch an. noisefloor schrieb: Die Hinweisbox als Fließtext vor die Tabelle ist IMHO wirklich besser
Ich habs ausprobiert, fand aber den erläuternden Text unter der Tabelle besser: Erst Fakten, dann Erläuterung. Ich stelle mir halt vor, daß jemand die Tabelle liest, und dann auf Fragen stößt, die unten erklärt werden. Steht der Text vor der Tabelle, ist der Zusammenhang nicht so klar, wie umgekehrt... FAT: Hier heißt es immer 255 Zeichen. Grund dafür ist die Kodierung in UTF-16, welches jedes Zeichen mit 2 Bytes (16 Bit) speichert. FAT (nur in Verbindung mit VFAT) kann für einen Dateinamen 20 (zusätzliche) Einträge mit jeweils 13 Zeichen speichern Quelle. Macht 260 zeichen, oder 520 Bytes... 😲 . Wie kommt man dann auf 255 Zeichen? Was wird da noch abgezogen? Wenn ich Unter Ubuntu eine FAT-Partition mit option UTF-8 mounte, werden dann neue Dateinamen auch in UTF-8 gespeichert? Kann man dann u.U. auch längere Namen als 255 Zeichen nutzen?
|
DrScott
Ehemalige
Anmeldungsdatum: 7. Juli 2005
Beiträge: 6018
|
kaputtnik schrieb: FAT: Hier heißt es immer 255 Zeichen. Grund dafür ist die Kodierung in UTF-16, welches jedes Zeichen mit 2 Bytes (16 Bit) speichert.
Wenn ich den Artikel richtig interpretiere, so können nur Zeichen der "BMP" mit 2 Bytes dargestellt werden. Die übrigen brauchen 4... Bei UTF-16 sind es also 2- oder 4 Bytes, bei UTF-8 1 bis 4 Bytes.
FAT (nur in Verbindung mit VFAT) kann für einen Dateinamen 20 (zusätzliche) Einträge mit jeweils 13 Zeichen speichern Quelle. Macht 260 zeichen, oder 520 Bytes... 😲 . Wie kommt man dann auf 255 Zeichen? Was wird da noch abgezogen?
Also zum einen ist die "2 Byte = 1 Zeichen"-Rechnung nicht richtig. Aus der Linux-Perspektive ist eh wieder bei 255 Bytes (!) aufgrung von VFS schluss. Abgesehen davon kann ich mir die auch theoretisch nicht möglichen 260 Zeichen auch nicht erklären. Im letzten Glied der Kette ist wohl noch eine Endemarkierung notwendig. Mag das der Grund sein?
Wenn ich Unter Ubuntu eine FAT-Partition mit option UTF-8 mounte, werden dann neue Dateinamen auch in UTF-8 gespeichert?
Gute Frage! Bin gerade unterwegs, muss ich später mal testen... Ich kann es mir nicht vorstellen, da das ja nicht kompatibel wäre. Windows würde ja UTF-16 erwarten. Das wiederum würde bedeuten, dass der vfat-Treiber grundsätzlich eine letztliche Kodierung nach UTF-16 macht. Das hätte aber zur Folge,dass der 200Byte UTF8-String aus lauter "a" vom VFS zwar akzeptiert würde, von vfat dann aber abgelehnt oder abgeschnitten werden würde, da hier 200 "a" ja bereits 400 Byte benötigen...
Kann man dann u.U. auch längere Namen als 255 Zeichen nutzen?
Meinem Verständniss nach nicht, da VFS... EDIT:
kaputtnik schrieb: So hab, mal wieder überarbeitet... Bitte schauts Euch an.
Ich finde die Hinweise gut plaziert und bisher echt gut gelungen!
|
kaputtnik
Anmeldungsdatum: 31. Dezember 2007
Beiträge: 9245
|
DrScott schrieb: Kann man dann u.U. auch längere Namen als 255 Zeichen nutzen?
Meinem Verständniss nach nicht, da VFS...
Is mir, nachdem ich den Post abgeschickt hatte, auch aufgegangen 😳 War ne blöde Frage.
kaputtnik schrieb: So hab, mal wieder überarbeitet... Bitte schauts Euch an.
Ich finde die Hinweise gut plaziert und bisher echt gut gelungen!
Danke. Was noch fehlt, ist ein Hinweis, wecher Zusammenhang zwischen Dateisystem, Betriebssystem und Kodierung besteht. Siehe FAT und UTF-16, oder Ubuntu und UTF-8. Aber gucken wir mal was Du herausfindest. Ich muss heute Nachmittag Wahlhelfer sein und komme erst am späten Abend (nach Auszählung) zurück.
|
DrScott
Ehemalige
Anmeldungsdatum: 7. Juli 2005
Beiträge: 6018
|
kaputtnik schrieb: Was noch fehlt, ist ein Hinweis, wecher Zusammenhang zwischen Dateisystem, Betriebssystem und Kodierung besteht. Siehe FAT und UTF-16, oder Ubuntu und UTF-8. Aber gucken wir mal was Du herausfindest.
Na dann: Dateisystem mit mkfs.vat erstellt (64MiB groß). name : 260 mal 'a': too long name : 256 mal 'a': geht Die ersten 19 Ketten haben 13 Zeichen (26 Byte, bestehen aus "61 00"), die letzte Kette 9 Zeichen, 1 Abschluss (NUL=00 00). Die letzten drei Plätze sind mit "ff ff" gefüllt. Interessant ist hier schon mal, dass VFS also mit 256 Zeichen klarkommt. Und mehr? Jetzt mal ein Umlaut: name : 256 mal 'ö' geht nicht! name : 128 mal 'ö' geht. Das ö landet als 'b6 00 c3 00' auf der Platte, d.h. nach 128 ö ist bereits der Speicherplatz für den Dateinamen ausgereizt. ⇒ FAT hat nicht immer für 255 Zeichen Platz. Die Kodierung "b6 00 c3" ist übrigens total bescheuert: "b6 c3" wäre die korrekte UTF-8 Kodierung. Dagegen ist die korrekte UTF-16 Kodierung "f6 00". Wenn ich das so beschriebene Dateisystem nun mit der Option 'utf8' einhänge, so wird mir der Name 'aaa...' weiterhin korrekt angezeigt. Aus den 128 'ö' sind nun aber 128 'ö' geworden, also 256 Zeichen. Die Kodierung wird nun eben anders interpretiert. Jetzt wiederhole ich die Tests nochmal (also mit utf8-Option): name : 256 mal 'b': too long name : 255 mal 'b': geht name : 256 mal 'ü': too long name : 255 mal 'ü': geht!
'b' ist wiederum ein 2Byte Zeichen (62 00) 'ü' ist nun aber ein 2Byte Zeichen (fc 00), daher sind nun doppelt so viele Umlaute möglich. Obwohl die Option "utf8" gewählt wurde, wird das ü nun aber in UTF-16 kodiert. Das soll einer verstehen. Ist die Mount-Option eventuell einfach falsch benannt worden? Das ist jetzt schon sehr verwirrend. Weshalb nun (mit utf8-Option) auch bei "einfachen" Zeichen plötzlich ein Zeichen weniger möglich ist, ist mir nicht verständlich. Interessant ist, dass nun mehr Umlaute gehen. Flugs wieder ohne "utf8" gemountet: 'a', 'b' werden korrekt angezeigt. 'ö' wird wieder korrekt angezeigt'. 'ü' wird nun als '?' angezeigt (und zwar 255 mal). Das ist natürlich wieder ein Kodierungsproblem. Wieso mit der Option "utf8" (die ja seltsamerweise UTF-16 erzeugt) nur 255 Bytes möglich sind?. Jedenfalls wäre im Dateisystem tatsächlich noch Platz für ein weiteres "62 00". Der Abschluss "00 00" ist einfach eine Doppelposition vorgerückt, und dort wo er bei "a" eigentlich steht, steht nun "ff ff". Ehrlich gesagt halte ich das ganze für so undurchschaubar, das wir da einheitlich generalisieren sollten: Es gehen nur 255 Bytes. Basta. Wer anderes behauptet wird auf diesen Thread verwiesen 😉
Ich muss heute Nachmittag Wahlhelfer sein und komme erst am späten Abend (nach Auszählung) zurück.
Bring bitte nichts durcheinander! Nicht dass aus 255 Stimmen mal plötzlich 256 werden oder umgekehrt 😉
|
kaputtnik
Anmeldungsdatum: 31. Dezember 2007
Beiträge: 9245
|
DrScott schrieb: kaputtnik schrieb: Was noch fehlt, ist ein Hinweis, wecher Zusammenhang zwischen Dateisystem, Betriebssystem und Kodierung besteht. Siehe FAT und UTF-16, oder Ubuntu und UTF-8. Aber gucken wir mal was Du herausfindest.
Ehrlich gesagt halte ich das ganze für so undurchschaubar, das wir da einheitlich generalisieren sollten: Es gehen nur 255 Bytes. Basta. Wer anderes behauptet wird auf diesen Thread verwiesen 😉
Ääh, ja... 😕 Ich hab n anderen Test gemacht. Ich habe hier eine FAT-Partition auf /dev/sda5 das standardmässig mit der Option utf8 eingehängt wird und wollte das Verhalten bei der Erstellung von Dateinamen herausfinden:
Unter Ubuntu: Verzeichnis mit Namen "äÄöÖÜü!§$%%&()={[]}#@" erstellt ▶ Unter win wird alles richtig dargestellt Unter Windows: Verzeichnis mit Namen "@#}][{=)(&%$§!üÜöÖäÄ" erstellt ▶ Unter Ubuntu wird alles richtig dargestellt Unter Ubuntu mit utf8: $:/media/DATEN$ ls -l
insgesamt 304
drwxrwx--- 2 franky plugdev 8192 2009-06-07 20:16 äÄöÖÜü!§$%%&()={[]}#@ # Unter Ubuntu erstellt
drwxrwx--- 2 franky plugdev 8192 2009-06-07 20:20 @#}][{=)(&%$§!üÜöÖäÄ # Unter Win erstellt
Dann die Partition ausgehangen und ohne utf8 wieder rein:
Neues Verzeichnis mit Namen "ohne_utf8_äÄöÖüÜ" erstellt (immer noch ohne utf8):
drwxrwx--- 2 franky plugdev 8192 2009-06-07 21:15 ohne_utf8_äÄöÖüÜ
Partition wieder mit utf8 eingehangen:
drwxrwx--- 2 franky plugdev 8192 2009-06-07 21:15 ohne_utf8_ä�ö�ü� Hmmm...
Unter Win sieht das neue Verzeichnis (ohne utf8 erstellt) so aus: "ohne_utf8_äÃöÃüÃ" Lustig: Ich habe den Verzeichnisnamen unter Win(2000) mit dem Win Editor (notepad) in einer Textdatei gespeichert. Dazu musste ich extra die Option "Kodierung: Unicode" auswählen, da sonst die Zeichen nicht richtig gespeichert wurden. Öffne ich unter Ubuntu diese Datei (.txt) mit kate, heißts: "Die Datei ... ist binär." Gut, was sagt uns das alles?
FAT kann auch "nur" 255 bytes speichern Unter Linux ist unbedingt darauf zu achten, das man die Option "utf8" beim Einhängen verwendet
Ich muss heute Nachmittag Wahlhelfer sein und komme erst am späten Abend (nach Auszählung) zurück.
Bring bitte nichts durcheinander! Nicht dass aus 255 Stimmen mal plötzlich 256 werden oder umgekehrt 😉
😊 In diese Bedroullie wäre ich gar nicht gekommen, weil in dem zu bearbeitenden Wahlbezirk zwar theoretisch 954 Leute hätten wählen können, aber de facto nur 195 Leute da waren 😢 ... macht eine Wahlbeteiligung von sage und schreibe 20,4%, zzgl Briefwähler. Dafür waren wir mit dem Auszählen innerhalb von 40 min fertig ☺ EDIT: Habe Änderungen eingfügt
|
DrScott
Ehemalige
Anmeldungsdatum: 7. Juli 2005
Beiträge: 6018
|
kaputtnik schrieb: Gut, was sagt uns das alles?
FAT kann auch "nur" 255 bytes speichern
Wenn Du dich auf Bytes beziehst, dann sind es 512 (bzw. 510). Bei Zeichen gebe ich dir Recht: bis zu 255 (oder 256) Zeichen. Wäre es nicht doch besser, in dieser Spalte von Zeichen zu sprechen und nicht von Bytes? "bis zu 255" Zeichen wäre nämlich meiner Meinung nach bei allen bisher gelisteten Dateisystemen richtig. Klar, "bis zu 255 Bytes" ist auch richtig, unterschlägt aber, dass es bei FAT eigentlich soger "bis zu 512" Bytes heißen müßte. Unter Linux ist unbedingt darauf zu achten, das man die Option "utf8" beim Einhängen verwendet
Das sehe ich auch so. Deine Beobachtungen stimmen mit meinen überein. Mir ist der Name "utf8" für die Option auch wieder symphatischer geworden: Es hängt nämlich von der "Betrachtungsrichtung" ab. Beim Lesen werden die UTF-16-Zeichen korrekt nach UTF-8 konvertiert. Der Name der Option "utf8" bedeutet also "to_utf8". Klar, dass es in der anderen Richtung das umgekehrte bewirkt, also "from_utf8"...
|
kaputtnik
Anmeldungsdatum: 31. Dezember 2007
Beiträge: 9245
|
DrScott schrieb: kaputtnik schrieb: Gut, was sagt uns das alles?
FAT kann auch "nur" 255 bytes speichern
Wenn Du dich auf Bytes beziehst, dann sind es 512 (bzw. 510).
Oh, ja, übersehen... Bei Zeichen gebe ich dir Recht: bis zu 255 (oder 256) Zeichen. Wäre es nicht doch besser, in dieser Spalte von Zeichen zu sprechen und nicht von Bytes?
Hallo? Na jetzt aber 😉! Erst willst du einen steigenden Schwierigkeitsgard und jetzt gibst Du klein bei? Ne im Ernst: Ich bin durchaus dafür, die Bytes drin stehen zu lassen. Schließlich könnte das jeweilige Dateisystem die Anzahl x Bytes verwalten/speichern. Es geht ja um eine Beschreibung von Dateisystemen. Und die abschließende Erläuterung ergibt ja dann die Einschränkung von 255 Bytes durch VFS. Sonst können wir uns die Spalte wirklich komplett sparen und am Anfang schreiben "Das VFS limitiert die Dateinamenlänge bei allen Dateisystemen auf 255 Bytes!"
"bis zu 255" Zeichen wäre nämlich meiner Meinung nach bei allen bisher gelisteten Dateisystemen richtig.
Ja was denn nun: 255 Bytes, oder 255 Zeichen? Äh, sehe gerade das das bei ext auch nicht klar scheint:Hier heißts immer "255 bytes", bei den Artikeln dazu heißts: ext2 "255 Characters", ext3 "255 bytes", ext4 "256 bytes". ❓
|
gabi
Anmeldungsdatum: 3. Dezember 2006
Beiträge: 1996
|
In http://de.wikipedia.org/wiki/Dateiname wird Dateiname in zwei Bedeutungen gebraucht: 1.) Dateisystem.html 2.) \wiki.ubuntuusers.de\Baustelle\Dateisystem.html
Unter Dateiname versteht man (der Leser des Artikels) wohl den Namen einer Datei, zB Dateisystem.html, also ohne Pfad. Die theoretische Dateinamenlänge meint den Dateinamen inklusive Pfad, jedenfalls bei Windows. oder?.
http://de.wikipedia.org/wiki/Dateiname schrieb: Linux ... Ein vollständiger Dateiname besteht aus mehreren Komponenten, den Pfadnamen. Jeder Pfadname unterliegt den Regeln
des Dateinamens, kann also 14 bzw. 255 Zeichen lang sein. Die Pfadnamen werden durch das Zeichen / getrennt.
Hört sich an, als wenn /wiki.ubuntuusers.de/Baustelle/Dateisystem.html auf ext zwei oder drei mal 255 (ohne die /) lang sein darf. Und \wiki.ubuntuusers.de\Baustelle\Dateisystem.html auf fat 255 (mit den \) lang sein darf.
|
kaputtnik
Anmeldungsdatum: 31. Dezember 2007
Beiträge: 9245
|
Hey, schön das Du den Weg hierher gefunden hast, gabi! gabi schrieb: In http://de.wikipedia.org/wiki/Dateiname wird Dateiname in zwei Bedeutungen gebraucht: 1.) Dateisystem.html 2.) \wiki.ubuntuusers.de\Baustelle\Dateisystem.html
Diese Diskussion wurde schon ausreichend geführt. Ergebnis: Dateisysteme haben nichts mit Datei-, Pfadnamen oder mit Verzeichnissen zu tun! Diese Unterscheidung wird beim Lesen des Artikel wohl deutlich. Gut, evtll sollte man Anfang noch den Hinweis auf Verzeichnisstruktur geben.
Unter Dateiname versteht man (der Leser des Artikels) wohl den Namen einer Datei, zB Dateisystem.html, also ohne Pfad. Die theoretische Dateinamenlänge meint den Dateinamen inklusive Pfad, jedenfalls bei Windows. oder?.
Nein! Dateinamenlänge ist immer ohne Pfad, weil sonst wärs ja eine Pfadnamenlänge. Die Spalte "Pfadnamenlänge" habe ich bewusst nicht in der Tabelle, weil die Pfadnamenlänge ziemlich unwichtig ist: Zum einen sind in den Dateisystemen keine speziellen Einschränkungen bzgl der Pfadlänge definiert, zum anderen werden die Einschränkungen durch das Betriebssystem vorgegeben. Hier steht das zumindest so. Unter Linux ist die max. Pfadlänge (incl Dateinamen) z.B. auf 4096 Bytes beschränkt. Bei Win NT sinds 32767 Bytes. Außer auf Servern vllt kommt wohl kaum jemand auf so lange Pfadnamen...
http://de.wikipedia.org/wiki/Dateiname schrieb:
Linux ... Ein vollständiger Dateiname besteht aus mehreren Komponenten, den Pfadnamen. Jeder Pfadname unterliegt den Regeln
des Dateinamens, kann also 14 bzw. 255 Zeichen lang sein. Die Pfadnamen werden durch das Zeichen / getrennt.
Probiers aus 😉. Ich habs gerade gemacht. Auf eine FAT32 Partition das Verzeichnis "testordner für lange Dateinamen und Pfad" erstellt, darin wiederum einen Ordner der exakt 255 1-Byte-Zeichen lang ist (der name mit den vielen a's) und darin die Datei "Dies ist eine Test-Textdatei" mit Inhalt "Dies ist die textdatei für Tests zum langen Dateinamen und Pfad angaben". Anschließend vom /home Odner mittels cat die Datei auslesen geht:
$ cat /media/DATEN/"testordner für lange Dateinamen und Pfad"/255x1byteaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/"Dies ist eine Test-Textdatei"
Die ist die textdatei für Tests zum langen Dateinamen und Pfad angaben
Der Pfad hat wesentlich mehr als 255 Zeichen, auch mehr als 255 Bytes. Wo ist das Problem? Man muss nicht alles glauben was die wikipedia schreibt... 😉 Ich werde nochmal ähnliche Tests mit ext3 machen, dann wissen wir ob 255 Bytes, oder Zeichen. Probieren geht über studieren 😎
|
gabi
Anmeldungsdatum: 3. Dezember 2006
Beiträge: 1996
|
kaputtnik schrieb: zum anderen werden die Einschränkungen durch das Betriebssystem vorgegeben. ... Probieren geht über studieren 😎
w2k - fat32.
11111111112222222222333333333344444444445555555555.das_sind_50
11111111112222222222333333333344444444445555555555111111111122222222223333333333444444444455555555551111111111222222222233333333334444444444555555555511111111112222222222333333333344444444445555555555.das_sind_200
Diese Datei in c:\
11111111112222222222333333333344444444445555555555111111111122222222223333333333444444444455555555551111111111222222222233333333334444444444555555555511111111112222222222333333333344444444445555555555111111111122222222223333333333444444444455555555551234
Diese Datei in c:\Neuer Ordner\
11111111112222222222333333333344444444445555555555111111111122222222223333333333444444444455555555551111111111222222222233333333334444444444555555555511111111112222222222333333333344444444445555555555111111111122222222223333333333444444444455
Diese Datei in c:\11111111112222222222333333333344444444445555555555\
111111111122222222223333333333444444444455555555551111111111222222222233333333334444444444555555555511111111112222222222333333333344444444445555555555111111111122222222223333333333444444444455555555551111
Mehr Zeichen für die Dateinamen waren jeweils nicht möglich.
Unter w2k scheint mir die Dateinamenlänge beschränkt zu sein auf: (255 - Pfadnamenlänge). Das finde ich halt im Zusammenhang mit der Dateinamenlänge auch interessant:
theoretische Dateinamenlänge = 255
Nutzung des Dateisystems durch Linux: ......mögliche Dateinamenlänge = theoretische Dateinamenlänge (255) Nutzung des Dateisystems durch Windows: .mögliche Dateinamenlänge = theoretische Dateinamenlänge (255) - Pfadnamenlänge
|
kaputtnik
Anmeldungsdatum: 31. Dezember 2007
Beiträge: 9245
|
gabi schrieb: Unter w2k scheint mir die Dateinamenlänge beschränkt zu sein auf: (255 - Pfadnamenlänge).
Stimmt, unter W2k kekomme ich keinen Zugang zu dem Verzeichnis, nicht einmal die Egenschaften lassen sich anzeigen. Im DOS-Modus mit LFN kommt man auch nicht ran. Was ich jetzt noch nicht probiert habe: DOS-Modus ohne LFN, also wenn die Dateien im 8.3-Format dargestellt/verwaltet werden.
theoretische Dateinamenlänge = 255
Nutzung des Dateisystems durch Linux: ......mögliche Dateinamenlänge = theoretische Dateinamenlänge (255) Nutzung des Dateisystems durch Windows: .mögliche Dateinamenlänge = theoretische Dateinamenlänge (255) - Pfadnamenlänge
Korrekt ☺ , diese Erkenntnis muss auch mit einfließen. Also was in dem Absatz jetzt noch fehlt bzw was wir uns überlegen sollten:
Spalte Dateinamenlänge: Angabe von "Bis zu 255 Zeichen", dann fällt der Text unten "Wieviel Bytes sind 1 Zeichen?" weg Dateinamenlänge und Pfadlänge: Wie stellen wir das dar? Evtll sollte doch eine Spalte "Pfadlänge" in der Tabelle auftauchen? Unterschiedliche Einschränkungen der Betriebssysteme bei der Länge des Pfadnamens.
|
kaputtnik
Anmeldungsdatum: 31. Dezember 2007
Beiträge: 9245
|
Hab versucht, die neuen Erkenntnisse in den Artikel einfließen zu lassen. So müssten eigentlich alle relevanten Infos drin, und gut zu lesen sein.
|
DrScott
Ehemalige
Anmeldungsdatum: 7. Juli 2005
Beiträge: 6018
|
kaputtnik schrieb: Hallo? Na jetzt aber 😉! Erst willst du einen steigenden Schwierigkeitsgard und jetzt gibst Du klein bei?
Ich bin ja lernfähig 😉 Wenn es ein Dateisystem gäbe, welches für ein Zeichen 25 Bytes bräuchte, aber insgesamt 6375 Bytes pro Dateiname bietet? Welche Formulierung wäre da anwenderfreundlicher? Das Dateisystem unterstützt bis zu 6375 Bytes oder es unterstützt bis zu 255 Zeichen?
Ne im Ernst: Ich bin durchaus dafür, die Bytes drin stehen zu lassen. Schließlich könnte das jeweilige Dateisystem die Anzahl x Bytes verwalten/speichern.
Es könnte das nicht nur, es tut es auch. Aber was nutzt diese Information? Eine abweichende Nutzung dieses Speicherplatzes ist nicht sinnvoll, da dadurch das Dateisystem inkompatibel wird. Ich weiß jetzt nicht, ob es Dir klar ist? Bei VFAT bedeuten die 512 Byte nichts anderes als "bis zu 256 Zeichen, selbst wenn es eine Beschränkung bei VFS nicht gäbe".
Und die abschließende Erläuterung ergibt ja dann die Einschränkung von 255 Bytes durch VFS.
Jezt glaube ich wirklich, dass Du es noch nicht ganz verstanden hasst: Bei VFAT ist eine Beschränkung durch VFS - in Bezug auf die Dateinamenlänge - gar nicht erforderlich: VFAT selbst unterstützt sowieso nur "bis zu 256" Bytes, was dann einer vollen Nutzung der 512 Bytes entsprechen würde. Sonst können wir uns die Spalte wirklich komplett sparen und am Anfang schreiben "Das VFS limitiert die Dateinamenlänge bei allen Dateisystemen auf 255 Bytes!"
Genau. Die Erklärung, was "bis zu" bedeutet und weshalb es hier unterschiedliches Verhalten zwischen den Dateisystemen gibt, wäre ja trotzdem notwendig. Denn das ist eine Sache, auf die der Anwender stoßen kann. Bei den meisten Dateisystemen wird eben UTF-8 kodiert gespeichtert (den Test, ob dies grundsätzlich der Fall ist, oder eben nur auf einem System, auf dem das Standardencoding auf UTF-8 gestellt ist, habe ich noch nicht geschafft). Bei anderen Dateisystemen (VFAT) ist es aber eben konstant UTF-16 (was zu einem Encoding-Problem führt, wenn nicht Option "utf8" verwendet wird).
"bis zu 255" Zeichen wäre nämlich meiner Meinung nach bei allen bisher gelisteten Dateisystemen richtig.
Ja was denn nun: 255 Bytes, oder 255 Zeichen?
Nochmal: Bis zu 255 Zeichen. Das ist bei allen momentan gelisteten Dateisystemen richtig und am genauesten. Anders ist es bei Bytes: 255 mal der Buchstabe 'a' benötigt bei ext3 z.b. exakt 255 Bytes. Bei VFAT werden dafür 510 Bytes benötigt.
Äh, sehe gerade das das bei ext auch nicht klar scheint:Hier heißts immer "255 bytes", bei den Artikeln dazu heißts: ext2 "255 Characters", ext3 "255 bytes", ext4 "256 bytes". ❓
Die machen sich einfach nicht so'n Kopf um so Nebensächlichkeiten 😉 Genau weiß es eh immer nur der Entwickler. kaputtnik schrieb: Spalte Dateinamenlänge: Angabe von "Bis zu 255 Zeichen", dann fällt der Text unten "Wieviel Bytes sind 1 Zeichen?" weg
Nicht ganz. Es ist ja durchaus interssant, aus welchen Gründen es manchmal weniger sein können. Nur muss das ganze mMn nicht bis ins Detail geklärt werden. Es könnte auch der Unterschied zwischen UTF-8 und UTF-16 Kodierung unter den Tisch fallen. Beide Encodings bewirken qualitativ den gleichen Effekt, nur eben nicht quantitativ. 2. Dateinamenlänge und Pfadlänge: Wie stellen wir das dar? Evtll sollte doch eine Spalte "Pfadlänge" in der Tabelle auftauchen?
Wie sehr sollen wir auf Windowsdetails eingehen? Ein Kommentar ja, aber keine extra Spalte. Die wäre ja eh nur bei einigen wenigen Dateisystemen gefüllt. Und: Es scheint ja keine Dateisystemeigenschaft zu sein, sondern eine Sache des Betriebsystems... 3. Unterschiedliche Einschränkungen der Betriebssysteme bei der Länge des Pfadnamens.
Was ist der Unterschied zu deinem vorherigen Punkt?
|
DrScott
Ehemalige
Anmeldungsdatum: 7. Juli 2005
Beiträge: 6018
|
kaputtnik schrieb: Hab versucht, die neuen Erkenntnisse in den Artikel einfließen zu lassen. So müssten eigentlich alle relevanten Infos drin, und gut zu lesen sein.
Bei FAT-Dateisystemen sind immer nur bis zu 255 Zeichen möglich, obwohl es theoretisch mehr sein könnten.
immer nur? Was soll das bedeuten? Gibt es andere Dateisysteme, die manchmal doch mehr Zeichen ermöglichen? Und dann der Zusatz "obwohl es theoretisch mehr sein könnten": Was denn nun? "immer nur" oder "theoretisch mehr"? Ich verstehe nicht, was Du damit meinst, hoffe aber, dass mein letztes Posting vielleicht einiges geklärt hat. Jedenfalls kann FAT nicht mehr als 256 Zeichen.
Unter Windows ist die Pfadlänge auf 255 Zeichen beschränkt (bei Nutzung von 1-Byte-Zeichen)
Mir ist nicht klar, worauf Du hier hinaus willst: VFAT kodiert nach UTF-16. In diesem Encoding gibt es keine 1-Byte-Zeichen. Daher kann VFAT ja auch nicht mehr als 256 Zeichen.
|