BOOL success;
NSFileManager *fileManager = [[NSFileManager defaultManager]autorelease];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *documentDBFolderPath = [documentsDirectory stringByAppendingPathComponent:@"DB"];
success = [fileManager fileExistsAtPath:documentDBFolderPath];
if (success){
return;
}else{
NSString *resourceDBFolderPath = [[[NSBundle mainBundle] resourcePath]
stringByAppendingPathComponent:@"DB"];
[fileManager createDirectoryAtPath: documentDBFolderPath attributes:nil];
[fileManager copyItemAtPath:resourceDBFolderPath toPath:documentDBFolderPath
error:&error];
}
}
喜欢这个。
Resources / DB / words.csv => DB文件夹副本=>文件/ DB / words.csv
我想在Resources文件夹中复制DB子目录。我认为这个来源很好。但该源创建文件夹,不会复制Resources文件夹中DB文件夹中的文件。
我真的想复制Resources文件夹中DB文件夹中的文件。请帮帮我。
答案 0 :(得分:8)
1)不要-autorelease
NSFileManager
。你是双重释放它会导致你的应用程序崩溃。
2)无需致电-createDirectoryAtPath:
。来自-copyItemAtPath:toPath:error:
的SDK文档,
srcPath 中指定的文件必须存在,而 dstPath 必须不存在
并创建目录,使副本失败。