在Objective C中获取当前目录

时间:2010-09-11 20:12:42

标签: objective-c path

我正在尝试获取当前目录,但是它给了我DEBUG文件夹的路径,我如何获取当前目录的路径。我使用以下代码。

NSFileManager *filemgr;
NSString *currentpath;

filemgr = [[NSFileManager alloc] init];

currentpath = [filemgr currentDirectoryPath];

2 个答案:

答案 0 :(得分:25)

currentDirectoryPath返回程序的当前工作目录。如果在调试模式下从Xcode启动它,程序的当前目录是Debug目录。

答案 1 :(得分:0)

在此基础上进一步发展。当前工作目录和启动目录可能不同!以这个示例为例,该应用程序是从主目录(~)启动的。

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,该CLI的路径参数可能相对于Shell中的当前工作目录。