2010-02-09 41 views

Trả lời

5

Danh sách trợ giúp Wikipedia the reserved characters for different filesystems. Cả NTFS lẫn POSIX đều không chấp nhận các ký tự rỗng hoặc dấu gạch chéo (/) trong tên tập tin. Ký tự gạch chéo rõ ràng không phải là một dấu tách tốt, vì vậy có thể bạn có thể sử dụng null.

Tất nhiên, không phù hợp với tất cả các trường hợp (ví dụ: không thường hiển thị khi in), trong trường hợp này bạn có thể phải sử dụng một số loại escaping scheme.

Java, nhằm mục đích làm việc trên các nền tảng khác nhau, thậm chí không cố gắng tìm một dấu phân cách đường dẫn chung. Thay vào đó, mỗi nền tảng có ký tự riêng, có thể truy cập thông qua một API.

2

Về mặt kỹ thuật, Unix cho phép bất kỳ ký tự nào trong một thư mục/tên tệp, ngoại trừ / tất nhiên, được hiểu là một phần của đường dẫn. Windows chỉ hỗ trợ các ký tự có thể in và một số ký tự đặc biệt không bao gồm \/: * ? " < > |.

+0

Vì vậy, đối với Unix, không có cách nào để nối nhiều đường dẫn trong một chuỗi? – user269354

+1

@ user269354 - Có thể bạn có thể sử dụng bộ phân tách tại nhà như:/home/user/tiutalk/_____ SEPARATOOOOORRR _____/var/www/_____ SEPARATOOOOORRR _____/bin/dump/ –

+0

hoặc chuỗi như "# p # p ... # p # p ", trong đó # là số ký tự trong đường dẫn và p là đường dẫn – user269354

-1

Tôi sẽ cẩn thận với các dấu phân tách tùy chỉnh vì chúng có thể bị hỏng trong tương lai, ví dụ: nếu ai đó sử dụng unicode và dấu phân tách tùy chỉnh của bạn là một phần của một ký tự khác.

27

điều gì về dấu phân tách cho biến môi trường PATH? ; cho cửa sổ và : cho Linux.

4

đường phân cách phụ thuộc nền tảng:

Đối với cửa sổ, đó là ‘\’ và để bỏ liên kết ‘/’.

+1

Bạn đang nói về phân cách thư mục, không phân cách đường dẫn. Dấu tách đường dẫn là các ký tự (dấu chấm phẩy trên Windows, dấu hai chấm trên Unix) tách riêng các phần tử riêng lẻ của một giá trị đại diện cho nhiều đường dẫn. – Alan

Các vấn đề liên quan