Gibt es ein Sonderzeichen, das nicht Teil des Pfades in Windows oder Unix sein kann, dass ich es als Trennzeichen verwenden kann?Pfadtrennzeichen für Windows und Unix
Antwort
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.
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 \/: * ? " < > |
.
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.
Was ist mit dem Trennzeichen für PATH-Umgebungsvariable? ; für Windows und : für Linux.
Pfadseparator sind plattformabhängig:
für Fenster, es ist ‚\‘ und für UNIX es ist ‚/‘.
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
- 1. Pfadtrennzeichen in Windows PowerShell ändern
- 2. Unix-Subsystem für Windows
- 3. Befehlszeilen-GUID für Unix und Windows?
- 4. Mehrdeutige Pfadtrennzeichen auf Windows - wie man damit umgehen?
- 5. Pfadtrennzeichen in Python 2.4
- 6. MS Windows Programmiertipp für Mac/Unix Entwickler
- 7. Portable Unix-ähnliche Umgebung für Windows
- 8. Schrägstriche und umgekehrte Schrägstriche unter UNIX/Windows
- 9. Unix-Berechtigungen von Windows
- 10. Dlls Entladen, um in Unix und Windows
- 11. SSH Windows zu UNIX
- 12. Windows entspricht UNIX pwd
- 13. Entspricht Unix eval in Windows
- 14. Dateiname globbing Windows vs. Unix
- 15. Windows äquivalent von .netrc auf Unix?
- 16. Unix-Makefile in Windows Visual Studio 2008
- 17. Javas File.toString oder Path.toString mit einem spezifischen Pfadtrennzeichen
- 18. Konvertieren von Mercurial UNIX Zeilenenden auf Windows
- 19. Windows-Befehl zum Konvertieren von Unix-Zeilenenden?
- 20. Bestellspezifikation für UNIX-Systemaufrufe
- 21. Grammatik für Unix-Befehlszeilenoptionen
- 22. Unix-Befehl für Endsumme
- 23. Gibt es eine Linux/Unix-Entsprechung für Windows KTM und Transactional NTFS?
- 24. Was ist die beste und vollständigste Implementierung von Unix-Systembefehlen für Windows?
- 25. Unix und FreeBSD
- 26. Java und Unix Bewährungs
- 27. SubSonic-Ports für Unix verwenden?
- 28. Debugger für Unix-Pipe-Befehle
- 29. Perl-Benutzereingabe für Unix-Befehl
- 30. Ist Powershell eine notwendige Fähigkeit für Windows-Entwickler wie Bash/Borne für einen Linux/UNIX-Entwickler?
Also gibt es für Unix keine Möglichkeit, mehrere Pfade in einer Zeichenfolge zu verbinden? – user269354
@ user269354 - Vielleicht können Sie ein hausgemachtes Trennzeichen verwenden wie:/home/user/tiutalk/_____ SEPARATOOOOORRR _____/var/www/_____ SEPARATOOOOORRR _____/bin/dump/ –
oder string wie "# p # p ... # p # p ", wobei # die Anzahl der Zeichen im Pfad und p der Pfad ist – user269354