NSFileManager - 在启动时复制文件

Pri*_*yat 4 iphone cocoa document copying nsfilemanager

我需要从我的应用程序的资源文件夹中复制一些示例文件,并将它们放在我的应用程序的文档文件夹中.我想出了附加的代码,它编译得很好,但它不起作用.我引用的所有目录都存在.我不太确定我做错了什么,有人能指出我正确的方向吗?

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]);
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:我只是按照它应该的方式编辑代码.然而现在又出现了另一个问题:

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

编辑:我通过告诉NSFileManager复制文件的目的地名称来解决问题.

        [manager copyItemAtPath:[dirToCopyFrom stringByAppendingPathComponent:file] toPath:[dirToCopyTo stringByAppendingPathComponent:file] error:&error];
Run Code Online (Sandbox Code Playgroud)

Eim*_*tas 5

我认为问题出在这一行:

NSArray*files = [manager contentsOfDirectoryAtPath:dirToCopyTo error:nil];
Run Code Online (Sandbox Code Playgroud)

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

NSArray*files = [manager contentsOfDirectoryAtPath:dirToCopyFrom error:nil];
Run Code Online (Sandbox Code Playgroud)

而你应该没事.