在android中从Dropbox下载多个文件或文件夹?

时间:2013-08-19 11:36:21

标签: android dropbox

到目前为止,我已成功将Dropbox API与我的项目集成在一起。为此,我一直在使用Dropbox SDK中提供的示例程序。从我可以下载(随机图片)和轻松上传文件的方式。我的问题是,我们如何从他们的保管箱帐户一次下载一个文件夹或多个文件? 。另外当我点击下载按钮时,它会随机选择一个图像文件然后显示,而不是这样做我想下载所有图像文件或特定文件夹。任何建议或帮助将不胜感激。

先谢谢。

3 个答案:

答案 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的工作原理是在打开文件时按需下载文件。所以只需打开你想要阅读的所有文件。