Dropbox使用delta IOS检测文件更改

时间:2013-03-06 19:50:46

标签: ios dropbox

我希望告知用户Dropbox文件夹中是否有任何文件更改。为此,我必须使用此代码:

[self.restCLient loadDelta: nil];

和方法:

-(void)restClient:(DBRestClient *)client loadedDeltaEntries:(NSArray *)entries reset:(BOOL)shouldReset cursor:(NSString *)cursor hasMore:(BOOL)hasMore{
NSLog(@"WORKED: %@, %@, %c, %c", entries, cursor, hasMore, shouldReset);
 }

 -(void)restClient:(DBRestClient *)client loadDeltaFailedWithError:(NSError *)error{

NSLog(@"THE ERROR: %@", error);
}

这是我得到的回应类型:

2013-03-06 20:46:33.373 Splash-it[1659:907] WORKED: (
"<DBDeltaEntry: 0x1e2afbf0>",
"<DBDeltaEntry: 0x1e0e4030>",
"<DBDeltaEntry: 0x1e013640>",
"<DBDeltaEntry: 0x1e28e590>"
)

如果我的保管箱中的内容发生了变化,我怎么能理解这个?

1 个答案:

答案 0 :(得分:2)

这个问题有点陈旧,但我还以为我会回答。 :)

您将要访问DBDeltaEntry对象的属性。

第1步:导入DBDeltaEntry.h

我不知道为什么Dropbox的其他部分没有包含这些内容(我通过电子邮件发送Dropbox来询问原因)。将此添加到您的班级:

#import "DBDeltaEntry.h"

第2步:循环结果

loadedDeltaEntries委托方法中,您可以循环搜索结果:

for(DBDeltaEntry *file in entries) {
  NSLog(@"Entry name: %@ / Metadata: %@",file.lowercasePath, file.metadata.filename);
}

要查看您可以在DBDeltaEntry对象的元数据上访问的其他内容,请查看DBMetadata.h:

BOOL thumbnailExists;
long long totalBytes;
NSDate* lastModifiedDate;
NSDate *clientMtime; // file's mtime for display purposes only
NSString* path;
BOOL isDirectory;
NSArray* contents;
NSString* hash;
NSString* humanReadableSize;
NSString* root;
NSString* icon;
NSString* rev;
long long revision; // Deprecated; will be removed in version 2. Use rev whenever possible
BOOL isDeleted;

NSString *filename;

第3步:了解结果

此条目列表表示Dropbox文件夹的最新更改(修改,删除或添加了哪些文件)。使用cursorloadedDeltaEntries方法中非常重要,因为它可以帮助您跟踪您所了解的更改。您可以存储光标,然后在每次增量调用时将其传入,告诉Dropbox“就改变而言,这是我所知道的”,Dropbox只会告诉您自该游标以来发生的变化。

我希望有所帮助。