到目前为止,我已成功将Dropbox API与我的项目集成在一起。为此,我一直在使用Dropbox SDK中提供的示例程序。从我可以下载(随机图片)和轻松上传文件的方式。我的问题是,我们如何从他们的保管箱帐户一次下载一个文件夹或多个文件? 。另外当我点击下载按钮时,它会随机选择一个图像文件然后显示,而不是这样做我想下载所有图像文件或特定文件夹。任何建议或帮助将不胜感激。
先谢谢。
答案 0 :(得分:1)
您好请通过以下代码,这可能对您有所帮助。
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
。
答案 1 :(得分:1)
如果您需要从下拉框中获取所有文件和文件夹,只需将此代码复制并粘贴到项目中即可查看结果。它会对你有所帮助。
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);
}
答案 2 :(得分:0)
Sync API的工作原理是在打开文件时按需下载文件。所以只需打开你想要阅读的所有文件。