Obj-C,如何使用NSSearchPathForDirectoriesInDomains复制文件?

时间:2011-12-17 18:52:02

标签: iphone objective-c ios cocoa-touch

我想将一些文件复制为备份例程的一部分。

我有以下功能,它给出了我的文件的位置。

- (NSString *)getLocalDocumentPath:(NSString*)strFile {

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
           NSUserDomainMask, YES);
    NSString *path = [[paths objectAtIndex:0] 
           stringByAppendingPathComponent:strFile];
    return path;
}

继承我的数据库

    NSString *filePath = [self getLocalDocumentPath:@"mydatabase.db"];

我想将其复制到名为upload.txt的新文件

    NSString *filePath = [self getLocalDocumentPath:@"upload.txt"];

然后我下载一个文件。

    NSString *filePath = [self getLocalDocumentPath:@"download.txt"];

我要在原始数据库文件的基础上复制。

    NSString *filePath = [self getLocalDocumentPath:@"mydatabase.db"];

3 个答案:

答案 0 :(得分:0)

听起来你很想了解NSFileManager(文档链接给你)。

您最感兴趣的方法是:

moveItemAtPath:toPath:error:

答案 1 :(得分:0)

一种方法可以是:
您可以在NSData中阅读要保存的文件内容,然后可以使用:

- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile

您可以使用您为各种文件提到的相对文件路径替换路径。

答案 2 :(得分:0)

NSFileManager *fileManager = [NSFilemanager defaultManager];
[fileManager copyItemAtPath:databasePath toPath:uploadFilePath error:nil];

如果您想使用download.txt覆盖数据库,请创建NSData的实例并使用- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile