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

Java 如何使用CoreAPI从dropbox下载所有文件夹和文件,java,api,dropbox,Java,Api,Dropbox,我正在将DropBox集成到我的程序中,但是下载所有文件夹中的所有文件夹、子文件夹和文件变得很麻烦。我知道如何列出根目录中的所有文件夹和文件,并使用以下代码分别下载: DbxEntry.WithChildren listing = null; try { listing = client.getMetadataWithChildren("/"); } catch (DbxException e1) {

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

DbxEntry.WithChildren listing = null;

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

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

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

您已经开始列出文件,因此要添加到其中,我们需要为每个循环执行一个简单的操作。它应该是这样的:注意:这将只获取文件

  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(); 
                  }

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

感谢您花时间回答这个问题。事实上,我是用另一种方法弄明白的。我使用这个的过程有点复杂,但这是因为我创建了一个GUI,它必须记住要返回和前进的目录,以及要上传到某个目录。不过,谢谢你!