使用存储在框中的项目的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?如果没有,还有办法下载该项目吗?
答案 0 :(得分:2)
我不相信API支持下载整个文件夹(因此SDK也不支持)。您可以获得的最接近的是下载所有文件夹的文件。这就是为什么BoxFile
采用download()
方法的原因,BoxFolder
和BoxItem
没有。
至于检查ID是否与文件或文件夹相对应 - 没有尝试发出API请求的方法。例如,您可以尝试执行new BoxFile(api, id).getInfo()
并查看它是否返回404。