3
我是iOS开发新手,正在开发支持Dropbox同步文本文件的应用程序。iOS - 检查文件是否存在Dropbox Sync API iOS SDK
在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];
我得到了它的工作原理!所以如果文件存在(我们通过阅读它的信息来检查你的建议),我必须在'writeString:error'之前'openFile:error''DBFile'。现在它正确同步/更新!我会将我的问题更新为解决方案。谢谢,@rmaddy! –