Konvertieren Sie NSURL in den lokalen Dateipfad


112

Ich habe eine NSURL, die so aussieht:

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

Gibt es eine Standardfunktion zum Konvertieren in einen lokalen Dateipfad, der folgendermaßen aussieht:

/Users/myuser/myfile.txt

Antworten:


222

Verwenden Sie die -[NSURL path]Methode:

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

Aus der Dokumentation:

Der Pfad der URL, der mit der stringByReplacingPercentEscapesUsingEncoding:Methode nicht entfernt wurde. Wenn der Empfänger nicht RFC 1808 entspricht, wird zurückgegeben nil.

Wenn dieses URL-Objekt eine Datei-URL enthält (wie mit bestimmt isFileURL), eignet sich der Rückgabewert dieser Methode zur Eingabe in Methoden von NSFileManager oder NSPathUtilities. Wenn der Pfad einen abschließenden Schrägstrich aufweist, wird er entfernt.

Gemäß RFC 3986 wird der führende Schrägstrich nach dem Berechtigungsabschnitt (Hostname und Port) als Teil des Pfads behandelt.

Beachten Sie, dass Sie eine solche URL mit erstellen können +[NSURL fileURLWithPath:].


8
Je nachdem, woher Sie die URL beziehen, möchten Sie möglicherweise überprüfen, ob sie [myURL isFileURL]wahr ist.
Matt Connolly

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.