NSFileManager:moveItemAtPath

3
NSString* path = [[NSBundle mainBundle] pathForResource:@"js" ofType:nil];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
if (path != nil) {
    NSFileManager *fm = [NSFileManager defaultManager];
    NSString* move_path = [NSString stringWithFormat:@"%@",  [paths objectAtIndex:0]];
    NSError *error; 
    if ([fm moveItemAtPath:path toPath:move_path error:&error]) {
        NSLog(@"***************** success!");
    } else {
        NSLog(@"***************** fail!");
    }    }

它总是不可避免地失败。

js和move_js不为null。

path = /var/mobile/Applications/06C82222-0ABF-4009-BD58-31B799DC7C33/adhoc.app/js
move_path = /var/mobile/Applications/06C82222-0ABF-4009-BD58-31B799DC7C33/Documents
1个回答

6

您想从应用程序包中移动文件,但是您无法这样做-您不能更改其中的任何内容。不要移动该文件,只需将其复制即可:

if ([fm copyItemAtPath:path toPath:move_path error:&error]) {

不,您不能预填文档文件夹。因此,常见的工作流程是-检查文档文件夹中是否存在文件,如果不存在,则从应用程序包中复制它,然后使用它。 - Vladimir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接