Dropbox ios同步api:readData don';等不及了
我正在使用Dropbox ios同步api:readData don';等不及了,ios,sync,dropbox,Ios,Sync,Dropbox,我正在使用readData将zip文件与服务器同步,但程序不会等待zip更改的下载。这是我的密码: enter DBPath *newPath = [[DBPath root] childPath:@"decoupe.zip"]; DBError *dbError; DBFile *dbFile = [[DBFilesystem sharedFilesystem] openFile:newPath error:nil]; NSFileHandle *fileHandle = [dbFile
readData
将zip文件与服务器同步,但程序不会等待zip更改的下载。这是我的密码:
enter DBPath *newPath = [[DBPath root] childPath:@"decoupe.zip"];
DBError *dbError;
DBFile *dbFile = [[DBFilesystem sharedFilesystem] openFile:newPath error:nil];
NSFileHandle *fileHandle = [dbFile readHandle:&dbError];
NSData *fileData = [dbFile readData:&readError];
[fileData writeToFile:@"/Users/walid/Documents/ikksTestSynchAPI/ikksTestSynchAPI/decoupe.zip" atomically:YES]; here
执行不会等待下载新的zip文件,但如果我运行程序2到3次,新的zip文件将被下载,zip文件大小的更改将生效
如何确保程序等待下载?在同步API中,所有读取操作都在文件的缓存副本上进行(当存在缓存版本时)。要更新到文件的最新版本,您需要打开文件,设置一个观察者,以便在文件更改时收到通知,等待文件同步状态的
isCached
标志为true,然后调用update
更新到文件的最新版本
请参阅示例。我想我可以使用以下命令等待下载:
而(!dbFile.newerStatus.cached){[nShread sleepForTimeInterval:1.0f];NSLog(@“sleep”);}
我可以在程序开始时等待DBFileSystem下载元数据吗,因为第一次运行时没有触发下载,我想这是因为DBFileSystem还没有(在dropbox中更新的文件的)信息谢谢你的回答,在继续之前,我想知道sync API是否使用二进制diff来下载文件,我觉得每当它下载整个文件时,Dropbox API通常不支持任何基于差异的上传/下载。完整的文件总是被传输。令人失望的是,API没有使二进制差异。在这种情况下,我将解压缩我的html目录并尝试同步。我添加了以下代码DBPath*rootPath=[[DBPath root]childPath:@”“;[filesystem addObserver:self-forPathAndChildren:rootPath块:^(){NSLog(@“您的dropbox文件夹中发生了更改!”;}],它工作正常,但是您如何知道哪个文件被更改为下载不幸的是,syncapi没有公开查看哪些路径被更改的方法。如果你打开了文件,你可以直接观察每个文件。我有大量的文件和子文件夹,这是一个目录应用程序,但每一刻都可能发生小的变化,更新两个文件或添加五个文件。。。这可以完成任务吗:但是sdk是版本1