适用于iOS的Dropbox v2 api - 如何获得clientMTim​​e?

时间:2017-10-17 00:55:45

标签: ios dropbox-api

我将使用Dropbox v1 API构建的应用迁移到v2 API。该应用需要将源Dropbox文件夹中的文件同步到app documents文件夹。当前版本的应用程序使用clientMTim​​e跳过同步未更改的文件。使用v1,我得到了所需的信息 - 特别是Dropbox文件夹中每个文件的路径和clientMTim​​e - 通过这样做...

//  ==============================================================
//  getDBMetadata
//  ==============================================================

- (void)getDBMetadata 
{
    NSString* theOPMLFilesRoot = @"/";
    [self.restClient loadMetadata:theOPMLFilesRoot withHash:self.opmlFilesHash];
}


//  ==============================================================
//  restClient:loadedMetadata:
//  ==============================================================

- (void)restClient:(DBRestClient*)client loadedMetadata:(DBMetadata*)metadata 
{
    self.opmlFilesHash = metadata.hash;               // Used to check for changes

    for (DBMetadata* __unused theMetadata in metadata.contents) {
        LogDebug(@"Path: %@, clientMtime: %@.", theMetadata.path , [theMetadata.clientMtime toStr]);
    }

    [self synchronizeFilesUsingDBMetadata:metadata];
}

适用于Dropbox对象的v2 iOS API文档' DBFILESMetadata'包括'路径'但是将clientMtime列为包含的属性(他们正在调用'字段')。有没有办法用v2获取clientMTim​​e?

1 个答案:

答案 0 :(得分:0)

DBFILESMetadata可以表示文件,文件夹或已删除的项目。只有文件的客户端修改时间,因此clientModified仅在DBFILESFileMetadata上可用,DBFILESFileMetadata仅代表文件。

DBFILESMetadataDBFILESMetadata的子类。要检查特定DBFILESFileMetadata是否为here,您可以使用isKindOfClass,如图所示rev。然后,您可以将其强制转换为相关的子类。

另请注意,contentHash或{{3}}是检查文件是否已更改的更好选项。