到目前为止,我已经成功地将 Dropbox API 与我的项目集成。为此,我一直在使用 Dropbox SDK 中提供的示例程序。从我可以轻松下载(随机图片)和上传文件的方式。我的问题是,我们如何从他们的保管箱帐户一次下载一个文件夹或多个文件?. 此外,当我单击下载按钮时,它会随机选择一个图像文件然后显示,而不是这样做,我想下载所有图像文件或特定文件夹。任何建议或帮助将不胜感激。
提前致谢。
嗨,请通过以下代码,这可能对您有帮助。
private boolean downloadDropboxFile(String dbPath, File localFile) throws IOException{
BufferedInputStream br = null;
BufferedOutputStream bw = null;
try {
if (!localFile.exists()) {
localFile.createNewFile(); //otherwise dropbox client will fail silently
}
FileDownload fd = api.getFileStream("dropbox", dbPath, null);
br = new BufferedInputStream(fd.is);
bw = new BufferedOutputStream(new FileOutputStream(localFile));
byte[] buffer = new byte[4096];
int read;
while (true) {
read = br.read(buffer);
if (read <= 0) {
break;
}
bw.write(buffer, 0, read);
}
} finally {
//in finally block:
if (bw != null) {
bw.close();
}
if (br != null) {
br.close();
}
}
return true;
}
有关更多信息,请查看source
.
如果您需要从下拉框中获取所有文件和文件夹,则只需将此代码复制并粘贴到您的项目中即可查看结果。这会对你有很大帮助。
String mPath="/"; //You can change the path here to specific FOLDER
Entry dirent = null;
try
{
dirent = mApi.metadata(mPath, 1000, null, true, null);
}
catch (DropboxException e)
{
System.out.println("Error Detail "+e.getMessage());
}
//执行循环并从PATH中检索所有文件和文件夹
for (Entry ent: dirent.contents)
{
String name = ent.fileName();
System.out.println("My File in Folder "+name);
}
Sync API 通过在您打开文件时按需下载文件来工作。因此,只需打开您要阅读的所有文件。