iOS - 检查文件是否存在Dropbox Sync API iOS SDK

Vin*_*yen 3 iphone sync objective-c ios dropbox-api

我是iOS开发的新手,并且开发了支持Dropbox同步文本文件的应用程序.

在Dropbox网站上学习了教程,但我无法检查文件是否存在.

实施时:

NSString *dropboxFileExtension;
switch ([[NSUserDefaults standardUserDefaults] integerForKey:kFileExtension]) {
    case txt:
        dropboxFileExtension = [NSString stringWithFormat:@"%@.txt", titleString];
        break;
    case md:
        dropboxFileExtension = [NSString stringWithFormat:@"%@.md", titleString];
        break;
    case markdown:
        dropboxFileExtension = [NSString stringWithFormat:@"%@.markdown", titleString];
        break;
    default:
        break;
}

DBPath *newPath = [[DBPath root] childPath:[NSString stringWithFormat:@"%@", dropboxFileExtension]];
DBFile *file = [[DBFilesystem sharedFilesystem] createFile:newPath error:nil];
[file writeString:self.note.contents error:nil];
Run Code Online (Sandbox Code Playgroud)

如果我更新其内容,这将引发文件存在的错误.

那么如何检查该文件是否存在,然后执行适当的操作,如覆盖文件或更新文件.谢谢!

编辑/工作解决方案:从逻辑上讲,我只需要使用DBFileInfo类(1)检查文件信息是否存在.如果(1)是 - >我们openFile:error之前打电话writeString:error,否则打电话createFile:error.正如@rmaddy所说.

所以...

DBPath *newPath = [[DBPath root] childPath:[NSString stringWithFormat:@"%@", dropboxFileExtension]];
DBError *error = nil;
DBFileInfo *info = [[DBFilesystem sharedFilesystem] fileInfoForPath:newPath error:&error];
if (info) {
    // file exists
    NSLog(@"size %lli byte(s), modified dated %@", info.size, info.modifiedTime);
    _file = [[DBFilesystem sharedFilesystem] openFile:newPath
                                                error:nil];
} else {
    _file = [[DBFilesystem sharedFilesystem] createFile:newPath
                                                  error:nil];
}

[_file writeString:self.note.contents error:nil];
Run Code Online (Sandbox Code Playgroud)

rma*_*ddy 6

尝试获取DBFileInfo路径:

DBError *error = nil;
DBFileInfo *info = [[DBFileSystem sharedFileSystem] fileInfoForPath:newPath error:&error];
if (info) {
    // file exists
}
Run Code Online (Sandbox Code Playgroud)