使用box java sdk下载项目,而不知道它是文件还是文件夹

时间:2015-07-20 02:42:04

标签: java box-api box

使用存储在框中的项目的ID,如果它是文件,您可以下载它,或者如果它是文件夹,则下载它的内容。无论哪种方式,您似乎都需要知道要下载哪种内容才能访问它,在处理实际下载之前执行BoxFile file = new BoxFile(api, id);BoxFolder folder = new BoxFolder(api, id);

我希望能够做类似

的事情
BoxItem boxItem = new BoxItem(api, id);
if (boxItem instanceof BoxFile) {
    // download file
} else if (boxItem instanceof BoxFolder) {
    // download all files in folder
}

有点像the example in the docs of downloading a folder's contents。但是,在这种情况下,ID是特定文件夹的ID,而我的ID是根文件夹中的文件夹或文件,我不想遍历所有根文件夹的内容。而且,无论如何,BoxItem无法实例化。

我怎样才能提前告知我是否正在下载文件或文件夹,只包含项目的ID?如果没有,还有办法下载该项目吗?

1 个答案:

答案 0 :(得分:2)

我不相信API支持下载整个文件夹(因此SDK也不支持)。您可以获得的最接近的是下载所有文件夹的文件。这就是为什么BoxFile采用download()方法的原因,BoxFolderBoxItem没有。

至于检查ID是否与文件或文件夹相对应 - 没有尝试发出API请求的方法。例如,您可以尝试执行new BoxFile(api, id).getInfo()并查看它是否返回404。