Как получить компонент path/directory из NSURL?

Я получил NSURL из NSSavePanel. Теперь у меня есть этот NSURL, который дает мне следующее:

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

Теперь мне легко получить только имя файла, используя следующее:

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

Это дает мне только локализованное имя файла, как и ожидалось: asdf%20asdf

Итак, как мне получить путь, например: file://localhost/Users/brett/Documents/

Ответы

Ответ 1

Вы можете использовать методы NSString для работы с файловыми путями. Например,

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

В Apple Docs вы можете найти другие полезные методы: Ссылка на класс NSString Работа с контурами раздел

Ответ 2

-[NSURL URLByDeletingLastPathComponent] - это самый простой способ достичь этого.

Ответ 3

Непосредственно из вашего NSSavePanel:

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