Chuyển đổi NSURL thành đường dẫn tệp cục bộ


112

Tôi có một NSURL trông như thế này:

tệp: //localhost/Users/myuser/myfile.txt

Có một chức năng tiêu chuẩn để chuyển đổi nó thành một đường dẫn tệp cục bộ giống như sau:

/Users/myuser/myfile.txt

Câu trả lời:


222

Sử dụng -[NSURL path]phương pháp:

NSLog(@"%@", myUrl.path);

Từ tài liệu:

Đường dẫn của URL, không thoát bằng stringByReplacingPercentEscapesUsingEncoding:phương thức. Nếu bộ thu không tuân theo RFC 1808, trả về nil.

Nếu đối tượng URL này chứa một URL tệp (như được xác định với isFileURL), giá trị trả về của phương thức này phù hợp để nhập vào các phương thức của NSFileManager hoặc NSPathUtilities. Nếu đường dẫn có dấu gạch chéo thì nó sẽ bị loại bỏ.

Theo RFC 3986, dấu gạch chéo hàng đầu sau phần quyền (tên máy chủ và cổng) được coi là một phần của đường dẫn.

Lưu ý rằng bạn có thể tạo một URL như vậy với +[NSURL fileURLWithPath:].


8
Tùy thuộc vào nơi bạn lấy URL, bạn có thể muốn kiểm tra xem [myURL isFileURL]có đúng không.
Matt Connolly

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.