我需要从应用程序的资源文件夹中复制一些示例文件,并将其放置在应用程序的文档文件夹中。我想出了附带的代码,它可以正常编译,但是不起作用。我引用的所有目录都存在。我不太确定自己在做什么错,有人可以指出我正确的方向吗?

NSFileManager*manager = [NSFileManager defaultManager];

NSString*dirToCopyTo = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];

NSString*path = [[NSBundle mainBundle] resourcePath];

NSString*dirToCopyFrom = [path stringByAppendingPathComponent:@"Samples"];


NSError*error;

NSArray*files = [manager contentsOfDirectoryAtPath:dirToCopyFrom error:nil];

for (NSString *file in files)
{
        [manager copyItemAtPath:[dirToCopyFrom stringByAppendingPathComponent:file] toPath:dirToCopyTo error:&error];

        if (error)
        {
            NSLog(@"%@",[error localizedDescription]);
    }
}


编辑:我只是按原样编辑了代码。但是现在还有另一个问题:


  2010-05-15 13:31:31.787 WriteIt
  移动[4587:207] DAMutableDictionary.h
  2010-05-15 13:31:31.795 WriteIt
  移动[4587:207] FileManager
  错误:无法进行操作
  完成。文件已存在


编辑:我已经通过告诉NSFileManager复制的文件的目标名称来解决此问题。

        [manager copyItemAtPath:[dirToCopyFrom stringByAppendingPathComponent:file] toPath:[dirToCopyTo stringByAppendingPathComponent:file] error:&error];

最佳答案

我认为问题出在这一行:

NSArray*files = [manager contentsOfDirectoryAtPath:dirToCopyTo error:nil];


您在目标目录而不是源中列出文件。将其更改为:

NSArray*files = [manager contentsOfDirectoryAtPath:dirToCopyFrom error:nil];


而且你应该没事。

10-05 20:26
查看更多