通过存储在盒子上的项目 ID,如果它是文件,您可以下载它;如果它是文件夹,您可以下载其内容。无论哪种方式,您似乎都需要知道要下载什么类型的东西才能访问它,执行 BoxFile file = new BoxFile(api, id);
或 BoxFolderfolder = 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 是根文件夹中的文件夹或文件的 ID,并且我不想循环遍历根文件夹的所有内容。而且,无论如何,BoxItem
无法实例化。
如何仅通过项目 ID 提前判断我正在下载文件还是文件夹?如果没有,是否有办法下载该项目?
最佳答案
我不认为 API 支持下载整个文件夹(因此 SDK 也不支持)。最接近的方法是下载该文件夹的所有文件。这就是为什么 BoxFile
有 download()
方法,但 BoxFolder
和 BoxItem
没有。
至于检查 ID 是否对应于文件或文件夹 - 没有办法在不尝试发出 API 请求的情况下判断。例如,您可以尝试执行 new BoxFile(api, id).getInfo()
并查看它是否返回 404。
关于java - 使用box java sdk下载项目而不知道它是文件还是文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31508151/