Tôi cần phải thêm một số thông tin truy vấn bổ sung vào đường dẫn tệp dưới dạng tham số truy vấn để phân tích cú pháp đường dẫn sau trong quá trình xử lý tệp. Tôi mặc dù rằng System.Uri lớp học có thể giúp tôi với điều này, nhưng có vẻ như nó không cho tôi những gì tôi mong đợi cho đường dẫn tập tin địa phương.Tại sao System.Uri không nhận ra tham số truy vấn cho đường dẫn tệp cục bộ?
var fileUri = new Uri("file:///c://a.txt?select=10")
// fileUri.AbsoluteUri = "file:///c://a.txt%3Fselect=10"
// fileUri.Query = ""
var httpUri = new Uri("http://someAddress/a.txt?select=10")
// httpUri.AbsoluteUri = "http://someaddress/a.txt?select=10"
// httpUri.Query = "?select=10"
Trong trường hợp của "ftp: //someAddress/a.txt chọn = 10" - chuỗi truy vấn cũng là trống
Tôi hiểu rằng System.Uri lẽ giải quyết "a. txt? select = 10 "để sửa tên tệp" a.txt% 3Fselect = 10 ", nhưng TẠI SAO - cách thoát khỏi điều này?
Cảm ơn trước
@Oded Vì họ là URI. Và Uris có tham số. – ordag
@ordag - Quan điểm của tôi là các máy chủ FTP và hệ điều hành sẽ không thực hiện _anything_ với các tham số này. – Oded
@Oded Đúng vậy, chúng hợp lệ. Và tác giả muốn phân tích cú pháp thông số đó trong quá trình xử lý sau. – ordag