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

标签 ios iphone objective-c sync 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];

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

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

编辑/工作解决方案:从逻辑上讲,我只需要使用 DBFileInfo class 检查文件信息是否存在(1).如果 (1) 为真 -> 我们在 writeString:error 之前调用 openFile: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];

最佳答案

尝试获取路径的 DBFileInfo:

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

关于iOS - 检查文件是否存在 Dropbox Sync API iOS SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16663000/

相关文章:

ios - 我的 IOS 应用程序的用户可以在未经明确许可的情况下向我的 Facebook 页面发帖吗?

ios - Firestore 监听器正在获取比现有文档数量更多的数据

iphone - iOS 三元条件运算符实现仅在设备上很挑剔?

ios - 删除导航栏按钮 subview

IOS 界面 View - 最佳实践

ios - iPad 上 UINavigationBar 中横向 Logo 居中

iphone - 如何为图层 shadowOpacity 设置动画?

objective-c - 从 NSString 中移除 NSCharacterSet 中的字符

objective-c - 检测 iPhone 音量按钮按住? (iOS 8)

iphone - 动画后cocos2d自动删除 Sprite