2010-02-09 8 views

Antwort

5

Wikipedia listet hilfreich the reserved characters for different filesystems auf. Weder NTFS noch POSIX akzeptieren den Null- oder Schrägstrich (/) in Dateinamen. Der Schrägstrich ist offensichtlich kein gutes Trennzeichen, also könnten Sie vielleicht null verwenden.

Natürlich ist null nicht für alle Situationen geeignet (z. B. ist es normalerweise nicht sichtbar, wenn es gedruckt wird), in diesem Fall müssen Sie möglicherweise eine Art von escaping scheme verwenden.

Java, das auf verschiedenen Plattformen arbeiten soll, versucht nicht einmal, einen gemeinsamen Pfadtrenner zu finden. Stattdessen hat jede Plattform ihren eigenen Charakter, erreichbar über eine API.

2

Technisch erlaubt Unix jedes Zeichen in einem Ordner/Dateinamen außer / natürlich, die als Teil des Pfades interpretiert werden würde. Windows unterstützt nur druckbare Zeichen und einige Sonderzeichen außer \/: * ? " < > |.

+0

Also gibt es für Unix keine Möglichkeit, mehrere Pfade in einer Zeichenfolge zu verbinden? – user269354

+1

@ user269354 - Vielleicht können Sie ein hausgemachtes Trennzeichen verwenden wie:/home/user/tiutalk/_____ SEPARATOOOOORRR _____/var/www/_____ SEPARATOOOOORRR _____/bin/dump/ –

+0

oder string wie "# p # p ... # p # p ", wobei # die Anzahl der Zeichen im Pfad und p der Pfad ist – user269354

-1

Ich wäre vorsichtig mit benutzerdefinierten Separatoren, weil sie in der Zukunft brechen könnten, z. Wenn jemand Unicode verwendet und Ihr benutzerdefiniertes Trennzeichen Teil eines anderen Zeichens ist.

27

Was ist mit dem Trennzeichen für PATH-Umgebungsvariable? ; für Windows und : für Linux.

4

Pfadseparator sind plattformabhängig:

für Fenster, es ist ‚\‘ und für UNIX es ist ‚/‘.

+1

Du bist reden über Verzeichnistrennzeichen, nicht Pfadtrennzeichen. Pfadtrennzeichen sind die Zeichen (Semikolons unter Windows, Doppelpunkte unter Unix), die einzelne Elemente eines Werts trennen, der mehrere Pfade darstellt. – Alan

Verwandte Themen