web-dev-qa-db-ja.com

NSURLからパス/ディレクトリコンポーネントを取得するにはどうすればよいですか?

NSSavePanelからNSURLを取得しました。私は今、私に以下を与えるこのNSURLを持っています:

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

これで、次のようなものを使用してファイル名だけを取得するのは簡単です。

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

これにより、予想どおり、ローカライズされたファイル名だけが表示されます。asdf%20asdf

つまり、パスを取得するにはどうすればよいですか:file://localhost/Users/brett/Documents/

16
Brett

NSStringメソッドを使用して、ファイルパスを操作できます。例えば、

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

他の便利なメソッドはAppleドキュメント: NSStringクラスリファレンス ->パスの操作にあります。 -) セクション

27
Nekto

-[NSURL URLByDeletingLastPathComponent]はこれを達成するための最も簡単な方法です。

34
Mike Abdullah

NSSavePanelから直接:

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