如何使用Dropbox API V2下载某些文件?

问题描述 投票:0回答:1

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

public void onFileClicked(final FileMetadata file) { }

但是似乎这不是我想要的,并且我不知道如何使用文件路径创建FileMetadata对象。我找不到任何有帮助的东西。我从GitHub获得了sample class,但仍然需要FileMetadata

java android download dropbox dropbox-api
1个回答
0
投票

好,我花了一些时间,所以我将答案发布给其他人。

当然,您必须指定要保存它的位置(但这很明显),然后创建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"也不起作用)。我花了很多时间才能使它起作用,所以我希望我的回答可以帮助某人节省时间。编码愉快!

© www.soinside.com 2019 - 2024. All rights reserved.