Ответ 1
currentDirectoryPath
возвращает текущий рабочий каталог программы. Если вы запустили его из Xcode в режиме отладки, текущий каталог программы является папкой Debug.
Я пытаюсь получить текущий каталог, но он дает мне путь к папке DEBUG, как я могу получить путь к текущему каталогу. Я использую следующий код.
NSFileManager *filemgr;
NSString *currentpath;
filemgr = [[NSFileManager alloc] init];
currentpath = [filemgr currentDirectoryPath];
currentDirectoryPath
возвращает текущий рабочий каталог программы. Если вы запустили его из Xcode в режиме отладки, текущий каталог программы является папкой Debug.
Развивая дальше в этом. Текущий рабочий каталог и каталог запуска могут отличаться! Возьмите этот пример, приложение запускается из домашнего каталога (~
).
Library/Developer/Xcode/DerivedData/MyApp-ehwczslxjxsxiob/Build/Products/Debug/MyApp.app/Contents/MacOS/MyApp -param value
NSString *p1 = [[NSFileManager defaultManager] currentDirectoryPath];
// p1 = ~/Library/Containers/com.MyApp.beta/Data
NSString *p2 = [[NSProcessInfo processInfo] environment][@"PWD"];
// p2 = ~
В зависимости от ситуации вам может понадобиться один или другой. В моем случае я хочу предоставить CLI, который принимает аргументы пути, которые могут быть относительно текущего рабочего каталога в оболочке.