2012-10-04 15 views
14

Ho recuperato un NSURL da un NSSavePanel. Ora ho questo NSURL che mi dà il seguente:Come ottenere il componente percorso/directory da un NSURL?

file://localhost/Users/brett/Documents/asdf%20asdf.json

Ora, è facile per me per recuperare solo il nome del file utilizzando qualcosa di simile al seguente:

[[[NSFileManager defaultManager] displayNameAtPath:pathAndFilename] stringByDeletingPathExtension]

questo mi dà solo il nomefile localizzato, come previsto: asdf%20asdf

Quindi, come ottengo il percorso, in questo modo:file://localhost/Users/brett/Documents/

risposta

27

È possibile utilizzare i metodi NSString per lavorare con i percorsi dei file. Ad esempio,

NSString *directory = [[URL absoluteString] stringByDeletingLastPathComponent]; 
NSString *filename = [[URL absoluteString] lastPathComponent]; 

si potrebbe trovare altri metodi utili a Apple Documenti: NSString Class Reference ->Lavorare con i percorsi sezione

+0

So che, per quanto riguarda il nome del file che va, non è una stringa localizzata. Ecco perché stavo usando displayNameAtPath: messaggio a NSFileManager. Buona risposta però! – Brett

+0

@Brett Comunque penso di aver risposto alla tua domanda su come ottenere la directory dei file. O cosa ti aspettavi? – Nekto

+0

Hai risposto correttamente, ho solo paura di utilizzare una funzione NSString invece di una funzione NSURL. Forse non dovrei esserlo. Grazie! – Brett

30

-[NSURL URLByDeletingLastPathComponent] è il modo più semplice per raggiungere questo obiettivo.

+0

Molto meglio di 'NSString'. – Nestor

+0

Chiarimento: directory NSURLURL = [fileURL URLByDeletingLastPathComponent]; – iamjustaprogrammer

1

direttamente dal NSSavePanel:

NSSavePanel *savePanel; 
... 
NSString *path = savePanel.directoryURL.path; 
Problemi correlati