แปลง NSURL เป็นเส้นทางไฟล์ในเครื่อง


112

ฉันมี NSURL ที่มีลักษณะดังนี้:

ไฟล์: //localhost/Users/myuser/myfile.txt

มีฟังก์ชั่นมาตรฐานในการแปลงเป็นเส้นทางไฟล์ในเครื่องหรือไม่โดยมีลักษณะดังนี้:

/Users/myuser/myfile.txt

คำตอบ:


222

ใช้-[NSURL path]วิธีการ:

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

จากเอกสารประกอบ:

เส้นทางของ URL ไม่ใช้ Escape กับstringByReplacingPercentEscapesUsingEncoding:เมธอด ถ้ารับไม่สอดคล้องกับ RFC 1808 nilผลตอบแทน

หากออบเจ็กต์ URL นี้มี URL ของไฟล์ (ตามที่กำหนดisFileURL) ค่าส่งคืนของวิธีนี้เหมาะสำหรับการป้อนข้อมูลลงในเมธอดของ NSFileManager หรือ NSPathUtilities หากเส้นทางมีเครื่องหมายทับจะถูกดึงออก

ตาม RFC 3986 เครื่องหมายทับนำหลังส่วนสิทธิ (ชื่อโฮสต์และพอร์ต) จะถือว่าเป็นส่วนหนึ่งของเส้นทาง

โปรดทราบว่าคุณสามารถสร้าง URL ดังกล่าวด้วย+[NSURL fileURLWithPath:].


8
ขึ้นอยู่กับว่าคุณได้รับ URL จากที่ใดคุณอาจต้องการตรวจสอบว่า[myURL isFileURL]เป็นจริง
Matt Connolly

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.