大家好我正在开发一个应用程序,从任何内容管理系统调出整个文件夹和文件结构,现在我已经完成了Box和sharepoint的集成。我现在想要同步Dropbox。在DBMetaData类中,我有属性
BOOL thumbnailExists;
NSArray* contents;
NSString* icon;
我想在这里做的第一件事就是我要加载文件的缩略图,我没有得到一个图标属性返回一个字符串,就像这个'page_white_acrobat'(我以为它会返回一个网址或者我可以下载thubmnail的东西)。有没有办法使用dropbox sdk带缩略图。我还上传了一个.mp4文件和.png文件,当我在chrome中打开dropbox时会显示缩略图,但在SDK中,thumbnailExists属性返回NO。
其次我想要文件夹的子文件夹和文件的数量,我尝试访问文件夹DBMetaData对象的contents属性,它返回nil。 SDK中是否有任何方法可以计算文件夹内的文件数量或任何解决方法。
答案 0 :(得分:3)
似乎Dropbox只提供了他们使用的图标的名称。您无法下载它,因此您应该检查此字符串并使用应用包中的资源。
在您实际发出在该路径上加载元数据的请求之前,DBMetadata对象的内容将为null。
此代码将帮助您开始使用子目录。
-(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。