gpt4 book ai didi

java - 如何使用 Dropbox API V2 下载特定文件?

转载 作者:行者123 更新时间:2023-12-01 18:37:47 24 4
gpt4 key购买 nike

我需要使用 DbxClientV2 从 Dropbox 下载某些文件/文件夹。我知道这个文件的路径,并且它总是相同的,所以我不想让用户选择它。我见过:

public void onFileClicked(final FileMetadata file) { }

但这似乎不是我要找的,而且我不知道如何使用文件路径创建 FileMetadata 对象。
我找不到任何有用的东西。我有sample class来自 GitHub,但它仍然需要 FileMetadata

最佳答案

好吧,我花了一些时间,所以我为其他人发布了我的答案。

当然,您必须指定要保存它的位置(但这很明显),然后创建OutputStream:

String path = Environment.getExternalStorageDirectory().toString() + "/DCIM";
File file = new File(path, "test.txt");

FileOutputStream outputStream = null;
try {
outputStream = new FileOutputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}

之后,我们创建 Metadata 对象并初始化它,然后使用 metadata.getPathLower() 下载它。

 try {
Metadata pathMetadata = client.files().getMetadata("/test.txt");
client.files().download(pathMetadata.getPathLower()).download(outputStream);
Log.e("METADATA", pathMetadata.toString());

} catch (DbxException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

奇怪的是,getPathLower()返回“test.txt”,但是当我们在download()方法中输入它时它返回

java.lang.IllegalArgumentException: String 'path' does not match pattern

("/test.txt" 也不起作用)。

我花了很多时间才让它工作,所以我希望我的回答可以帮助别人节省这个时间。

祝你编码愉快!

关于java - 如何使用 Dropbox API V2 下载特定文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60002066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com