如何使用CoreAPI从Dropbox下载所有文件夹和文件

时间:2014-06-28 00:21:30

标签: java api dropbox

我将DropBox集成到我的程序中,但是下载所有文件夹中的所有文件夹,子文件夹和文件变得很麻烦。我知道如何列出根目录中的所有文件夹和文件,并使用以下代码单独下载:

DbxEntry.WithChildren listing = null;

            try {
                listing = client.getMetadataWithChildren("/");
            } catch (DbxException e1) {
                e1.printStackTrace();
            }

但是,如何在用户指定的文件夹中下载文件夹?我的程序创建一个类似于DropBox Android应用程序界面的界面,并在点击时下载并保存文件夹和文件的元数据。我在创建正确路径时遇到问题。我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

这是我刚刚遇到其中一个项目的问题。

你可以从列表中找到文件的开头,所以要添加它们,我们需要为每个循环做一个简单的操作。它应该如下所示:注意:这只会获取文件

  for (DbxEntry child : listing.children){
    mClient.getFile("/PATHTOFILE/" + child.name, null, new FileOutputStream(filePath + mPathSep + child.name));
              }

为了获取文件夹,我建议通过添加一些if语句来修改上面的代码。 DbxEntry有一个isFile / Folder方法,您可以使用它来确定它是否是文件。一旦它命中文件你就可以做一个新的

 for (DbxEntry child : listing.children){
      if(child.isFile())
        mClient.getFile("/PATHTOFILE/" + child.name, null, new FileOutputStream("PATHTONEWFILE" + child.name));

      else
       new File(path).mkdir(); 
                  }

有了这些信息,您可以实现最终目标。