3

我将如何在应用程序的目录(.app 所在的同一文件夹)中获取文件,并获取它的绝对路径。假设相对路径是“Data/file.txt”,我将如何使用 Objective C 将其作为绝对路径?如果有帮助,我让用户输入他们的主文件夹名称。

请帮忙,

嗨盖伊

4

3 回答 3

14

我会使用NSURL为我解析 URL 的方法,如下所示:

NSURL * bundle = [[NSBundle mainBundle] bundleURL];
NSURL * file = [NSURL URLWithString:@"../Data/file.txt" relativeToURL:bundle];
NSURL * absoluteFile = [file absoluteURL];

“../”是必需的,否则它会尝试您的应用程序包中找到文件。预先放置“../”将告诉它查看包的包含文件夹,而不是包本身。此外,-[NSBundle bundleURL]它是一个 10.6+ API,但NSURL使用方便的方法和-[NSBundle bundlePath].

于 2010-01-23T16:32:21.333 回答
2

通过执行以下操作查找正在运行的应用程序的位置:

NSString * applicationPath = [[NSBundle mainBundle] bundlePath];

这将返回类似:

/Users/myUser/Library/Application Support/iPhone Simulator/User/Applications/317CF5C7-57B3-42CE-8DF4-4DD10B070D95/Assignment1a.app

然后用- (NSString *)stringByDeletingLastPathComponent切掉最后一点。

于 2010-01-23T16:16:21.507 回答
1

您应该能够将应用程序的根文件夹与相对路径连接起来。您可以使用 NSHomeDirectory() 获取应用程序主目录,因此要获取绝对路径,您可以执行以下操作:

NSString *path = [NSHomeDirectory() stringByAppendingString: @"/Data/file.txt"];
于 2010-01-23T16:11:05.863 回答