Ubah NSURL ke jalur file lokal

112

Saya memiliki NSURL yang terlihat seperti ini:

file: //localhost/Users/myuser/myfile.txt

Apakah ada fungsi standar untuk mengubahnya menjadi jalur file lokal seperti ini:

/Users/myuser/myfile.txt
sashoalm
sumber

Jawaban:

222

Gunakan -[NSURL path]metode:

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

Dari dokumentasi:

Jalur URL, tidak lolos dengan stringByReplacingPercentEscapesUsingEncoding:metode. Jika penerima tidak sesuai dengan RFC 1808, kembalikan nil.

Jika objek URL ini berisi URL file (sebagaimana ditentukan dengan isFileURL), nilai kembalian metode ini cocok untuk dimasukkan ke dalam metode NSFileManager atau NSPathUtilities. Jika jalur memiliki garis miring, jalur tersebut akan dilucuti.

Menurut RFC 3986, garis miring di depan setelah bagian otoritas (nama host dan port) diperlakukan sebagai bagian dari jalur.

Perhatikan bahwa Anda dapat membuat URL seperti itu dengan +[NSURL fileURLWithPath:].


sumber
8
Bergantung dari mana Anda mendapatkan URL, Anda mungkin ingin memeriksa [myURL isFileURL]apakah benar.
Matt Connolly
3

Cepat 4:

absoluteURL.path 

atau

yourUrl.path
Naishta
sumber