Path.Combine
sử dụng các giá trị của Path.DirectorySeperatorChar
và Path.VolumeSeparatorChar
, và chúng được xác định bởi các thư viện lớp trong thời gian chạy - vì vậy nếu bạn viết mã của bạn chỉ sử dụng Path.Combine
cuộc gọi, Environment.SpecialFolder
giá trị, và vân vân, nó sẽ chạy tốt ở khắp mọi nơi, kể từ Mono (và có lẽ là bất kỳ thời gian chạy .NET nào) thực hiện phương thức gốc để nhận và xây dựng các đường dẫn đó cho bất kỳ nền tảng nào mà nó chạy trên đó. (Ví dụ thứ hai của bạn, ví dụ, trả /server/mydir
đối với tôi, nhưng ví dụ đầu tiên cho c:\/windows
)
Nếu bạn muốn có một con đường UNIX cụ thể mã hóa cứng trong mọi trường hợp, Path.Combine
không được mua bạn bất cứ điều gì: Console.WriteLine ("/server/mydir");
làm những gì bạn muốn trong OP. Tuy nhiên, theo Hans, các hệ thống tệp khác nhau có các quy tắc khác nhau cho các ký tự được phép, độ dài đường dẫn và v.v., vì vậy thực hành tốt nhất, giống như với bất kỳ chương trình nền tảng nào, là hạn chế sử dụng giao điểm của các tính năng được phép giữa các hệ thống tệp bạn đang nhắm mục tiêu. Xem các vấn đề về độ nhạy trường hợp quá.
Nguồn
2010-06-01 09:07:45
Cảm ơn điều đó, nhưng tôi không thể tìm thấy bất kỳ phương pháp nào trong các lớp này có vẻ là tương đương của .Combine()? –
Tôi không tìm thấy phương pháp này hữu ích ... Yêu cầu định dạng URI. UriFormatException: URI không hợp lệ: Không thể xác định định dạng của URI: Mẫu/1024x768 / –