Converter NSURL em caminho de arquivo local

112

Eu tenho um NSURL parecido com este:

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

Existe uma função padrão para convertê-lo em um caminho de arquivo local parecido com este:

/Users/myuser/myfile.txt
sashoalm
fonte

Respostas:

222

Use o -[NSURL path]método:

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

Da documentação:

O caminho da URL, sem escape com o stringByReplacingPercentEscapesUsingEncoding:método. Se o receptor não estiver em conformidade com RFC 1808, retorna nil.

Se este objeto de URL contiver um URL de arquivo (conforme determinado com isFileURL), o valor de retorno deste método é adequado para entrada em métodos de NSFileManager ou NSPathUtilities. Se o caminho tiver uma barra final, ele será removido.

De acordo com o RFC 3986, a barra inicial após a parte da autoridade (nome do host e porta) é tratada como parte do caminho.

Observe que você pode criar esse URL com +[NSURL fileURLWithPath:].


fonte
8
Dependendo de onde você obtém o URL, você pode querer verificar se [myURL isFileURL]é verdadeiro.
Matt Connolly
3

Swift 4:

absoluteURL.path 

ou

yourUrl.path
Naishta
fonte