将应用程序安装到iPhone时,有没有办法将文件安装到App的Documents文件夹?
换句话说:当用户下载App并将其安装到iPhone上时,我想自动将一些文件安装到App的Documents目录中。
例如:我有一个文件foo.txt,我在开发时为我的App SeeFooRun创建。当App 安装时,我希望foo.txt出现在Documents目录中,这样当我第一次运行App时,我从Documents目录而不是App Bundle访问foo.txt。
谢谢!
在示例中,我说“第一次运行”,当我打算说“安装”时,我改变了句子的其余部分以适应。抱歉混淆了!
答案 0 :(得分:2)
我会用这种方法做到这一点:
在根plist中创建属性将初始值设置为“NO”运行应用程序时,请检查此值。
如果值为“NO”,则在文档目录中创建文档,将值更改为“YES”并保存该值。
下次运行该应用时,该值将为“YES”,并且不会重建该文件。
希望这会有所帮助.....
答案 1 :(得分:0)
您可以这样做:
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
NSString *pathLocal = [documentsDir stringByAppendingPathComponent:@"foo.txt"];
NSString *pathBundle = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"foo.txt"];
NSError *error;
BOOL success = [fileManager copyItemAtPath:pathBundle toPath:pathLocal error:&error];
答案 2 :(得分:0)
复制到文档答案中的一个微小变化 - 将您复制的所有内容放入您创建的文档中的文件夹中,然后在启动时只需检查是否存在该文件夹,然后进行所有复制。
检查每个文件是否更加健壮,特别是如果您在更新中添加新文件,则复制逻辑将复制到单个新文件中而不会覆盖旧文件。