Как получить компонент 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;