2012-10-04 80 views
14

我從NSSavePanel檢索到一個NSURL。我現在有這個NSURL使我有以下幾點:如何從NSURL獲取路徑/目錄組件?

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

現在,它是容易的,我使用類似下面只檢索文件名:

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

這給了我只是本地化的文件名,符合市場預期:asdf%20asdf

所以,我如何獲取路徑,像這樣:file://localhost/Users/brett/Documents/

回答

27

您可以使用NSString方法來處理文件路徑。例如,

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

你會發現在蘋果文檔的其他有用的方法:NSString Class Reference - >與路部分

+0

我知道,只要該文件名去,它不是一個本地化的字符串。這就是爲什麼我使用displayNameAtPath:消息到NSFileManager。雖然很好的答案! – Brett

+0

@Brett無論如何,我認爲我回答了關於獲取文件目錄的問題。或者你期待什麼? – Nekto

+0

你沒有正確回答,我只是害怕使用NSString函數而不是NSURL函數。也許我不該。謝謝! – Brett

30

-[NSURL URLByDeletingLastPathComponent]合作是實現這一目標的最簡單方法。

+0

比'NSString'好得多。 – Nestor

+0

說明: NSURL directoryURL = [fileURL URLByDeletingLastPathComponent]; – iamjustaprogrammer

1

直接從您的NSSavePanel:

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