Convertir NSURL en chemin de fichier local

112

J'ai une NSURL qui ressemble à ceci:

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

Existe-t-il une fonction standard pour le convertir en un chemin de fichier local ressemblant à ceci:

/Users/myuser/myfile.txt
sashoalm
la source

Réponses:

222

Utilisez la -[NSURL path]méthode:

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

De la documentation:

Le chemin de l'URL, sans échappement avec la stringByReplacingPercentEscapesUsingEncoding:méthode. Si le récepteur n'est pas conforme à la RFC 1808, retourne nil.

Si cet objet URL contient une URL de fichier (comme déterminé par isFileURL), la valeur de retour de cette méthode convient pour une entrée dans les méthodes de NSFileManager ou NSPathUtilities. Si le chemin comporte une barre oblique à la fin, il est supprimé.

Selon la RFC 3986, la barre oblique après la partie autorité (nom d'hôte et port) est traitée comme faisant partie du chemin.

Notez que vous pouvez créer une telle URL avec +[NSURL fileURLWithPath:].


la source
8
Selon l'endroit d'où vous obtenez l'URL, vous voudrez peut-être vérifier si elle [myURL isFileURL]est vraie.
Matt Connolly
3

Swift 4:

absoluteURL.path 

ou

yourUrl.path
Naishta
la source