我有一个.json文件,我希望将其作为资源与我的应用程序捆绑在一起。我已阅读File System Programming Guide,其中说您应将支持文件放在<Application_Home>/Library/Application Support
中。那么在构建我的应用程序之前如何将我的.json文件放在这个目录中呢?
如何在运行时引用该文件?
答案 0 :(得分:5)
如果您的文件始终是只读的(仅作为应用更新的一部分更新),则将该文件添加到项目中应用的资源中。然后你只需从应用程序包中读取文件:
// assume a filename of file.txt. Update as needed
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"txt"];
如果您需要在应用程序中提供初始文件但在运行时进行更新,则需要像上面一样打包文件,但是第一次运行应用程序时,您需要将文件复制到另一个可写的位置。应用程序的沙箱。
// Get the Application Support directory
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *appSupportDirectory = [paths objectAtIndex:0];
// Create this path in the app sandbox (it doesn't exist by default)
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager createDirectoryAtPath:appSupportDirectory withIntermediateDirectories:YES attributes:nil error:nil];
// Copy the file from the app bundle to the application support directory
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"txt"];
NSString *newPath = [appSupportDirectory stringByAppendingPathComponent:[filePath lastPathComponent]];
[fileManager copyItemAtPath:filePath toPath:newPath error:nil];
答案 1 :(得分:0)
这里有一个很好的解释http://www.cocoawithlove.com/2010/05/finding-or-creating-application-support.html
需要在运行时创建目录,并从主包中移动文件,然后您可以使用链接中描述的方法访问它们。