访问应用包中包含的文件

时间:2014-08-19 11:17:39

标签: ios objective-c nsbundle

以下代码在iOS 8之前正常运行。 现在我正在编译iOS 8 beta 5我无法访问这些文件。

NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
sprintf(appPath, "%s/%s/extfiles", [NSHomeDirectory() UTF8String],
[[[NSFileManager defaultManager] displayNameAtPath:bundlePath] UTF8String]);

app Path的结果应该是:

appPath char *  "/var/mobile/Containers/Data/Application/97726814-AA76-41AB-A9A7-296AAEF4F898/MyApplication.app/extfiles"   0x0054f44c

我的应用程序使用该文件夹中包含的文件启动,结果是我的应用程序在读取文件时崩溃。

2 个答案:

答案 0 :(得分:1)

该代码不正确,不适用于任何版本的iOS,因为连接应用程序包根目录和主目录是没有意义的。如果它有效,那么我认为这只是运气。

你想要的是:

NSBundle *bundle = [NSBundle mainBundle];
NSURL *extFilesURL = [[bundle resourceURL] URLByAppendingPathComponent:@"extfiles"];

答案 1 :(得分:1)

你可以试试这个

NSString *str=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"extfiles"];

希望它有所帮助。