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

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


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.