Konwertuj NSURL na lokalną ścieżkę pliku

112

Mam NSURL, który wygląda tak:

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

Czy istnieje standardowa funkcja konwersji na lokalną ścieżkę pliku, która wygląda tak:

/Users/myuser/myfile.txt
sashoalm
źródło

Odpowiedzi:

222

Użyj -[NSURL path]metody:

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

Z dokumentacji:

Ścieżka adresu URL bez zmiany znaczenia przy użyciu stringByReplacingPercentEscapesUsingEncoding:metody. Jeśli odbiornik nie jest zgodny z RFC 1808, zwraca nil.

Jeśli ten obiekt adresu URL zawiera adres URL pliku (określony za pomocą isFileURL), wartość zwracana przez tę metodę jest odpowiednia do wprowadzania do metod NSFileManager lub NSPathUtilities. Jeśli na końcu ścieżki znajduje się ukośnik, jest ona usuwana.

Zgodnie z RFC 3986, początkowy ukośnik po części dotyczącej uprawnień (nazwy hosta i portu) jest traktowana jako część ścieżki.

Pamiętaj, że możesz utworzyć taki adres URL za pomocą +[NSURL fileURLWithPath:].


źródło
8
W zależności od tego, skąd masz adres URL, możesz chcieć sprawdzić, czy [myURL isFileURL]jest prawdziwy.
Matt Connolly
3

Swift 4:

absoluteURL.path 

lub

yourUrl.path
Naishta
źródło