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

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:].


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.