我将DropBox集成到我的程序中,但是下载所有文件夹中的所有文件夹,子文件夹和文件变得很麻烦。我知道如何列出根目录中的所有文件夹和文件,并使用以下代码单独下载:
DbxEntry.WithChildren listing = null;
try {
listing = client.getMetadataWithChildren("/");
} catch (DbxException e1) {
e1.printStackTrace();
}
但是,如何在用户指定的文件夹中下载文件夹?我的程序创建一个类似于DropBox Android应用程序界面的界面,并在点击时下载并保存文件夹和文件的元数据。我在创建正确路径时遇到问题。我该怎么做呢?
答案 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();
}
有了这些信息,您可以实现最终目标。