iOS dropbox SDK加载缩略图和文件夹内的文件数

时间:2013-04-18 05:09:20

标签: ios dropbox dropbox-api

大家好我正在开发一个应用程序,从任何内容管理系统调出整个文件夹和文件结构,现在我已经完成了Box和sharepoint的集成。我现在想要同步Dropbox。在DBMetaData类中,我有属性

BOOL thumbnailExists;
NSArray* contents;
NSString* icon;
  1. 我想在这里做的第一件事就是我要加载文件的缩略图,我没有得到一个图标属性返回一个字符串,就像这个'page_white_acrobat'(我以为它会返回一个网址或者我可以下载thubmnail的东西)。有没有办法使用dropbox sdk带缩略图。我还上传了一个.mp4文件和.png文件,当我在chrome中打开dropbox时会显示缩略图,但在SDK中,thumbnailExists属性返回NO。

  2. 其次我想要文件夹的子文件夹和文件的数量,我尝试访问文件夹DBMetaData对象的contents属性,它返回nil。 SDK中是否有任何方法可以计算文件夹内的文件数量或任何解决方法。

2 个答案:

答案 0 :(得分:3)

  1. 似乎Dropbox只提供了他们使用的图标的名称。您无法下载它,因此您应该检查此字符串并使用应用包中的资源。

  2. 在您实际发出在该路径上加载元数据的请求之前,DBMetadata对象的内容将为null。

  3. 此代码将帮助您开始使用子目录。

    -(void)restClient:(DBRestClient *)client loadedMetadata:(DBMetadata *)metadata
    {
        // LOAD METADATA OF SUBDIRECTORIES
        for (DBMetadata *node in metadata.contents) {
            if (node.isDirectory) {
                [_restClient loadMetadata: node.path];
            }
        }
    
        // GET COUNT OF DIRECTORY CONTENTS
        if (metadata.isDirectory) {
            NSLog(@"%@ contains %d files and folders", metadata.path, metadata.contents.count);
        }
    }
    

答案 1 :(得分:2)

要列出路径或目录的内容,需要调用DBRestClient对象的以下方法:

 - (void)loadMetadata:(NSString*)path;

然后调用以下委托回调(请参阅方法正文以获取下载列出目录中每个文件的缩略图的代码):

 - (void)restClient:(DBRestClient*)client loadedMetadata:(DBMetadata*)metadata
 {
     for (DBMetadata *file in metadata.contents)
     {
         // 1. Use the DBMetadata * file object to do things like: add a table-view cell for the file.
         [self.filesListView addCellForFile: file];
         // 2. Request thumbnail for each file
         NSString *localThumbnailPath = [self localThumbnailPathForFile: file]; // create a local-file-path for the thumbnail
         [dbRestClient loadThumbnail: file.path ofSize:@"l" intoPath:localThumbnailPath];
     }
 }

在上面的方法中,loadThumbnail:ofSize:intoPath:方法将导致调用以下委托回调:

 - (void)restClient:(DBRestClient*)client loadedThumbnail:(NSString*)localPath

从中,您必须使用给定的localPath通过下载的缩略图更新您的UI。