Загрузка файла Android Dropbox API - PullRequest
0 голосов
/ 31 мая 2011

В настоящее время я работаю над приложением для Android, которое должно поддерживать Android Dropbox API.У меня это работает так, что он отправляет файл с SD-карты Android в папку Dropbox.Затем мне понадобится загрузить этот файл и снова сохранить его на SD-карте телефона.

Как я могу скачать файл из Dropbox и сохранить его на устройстве, документации по Android API практически нет.

Спасибо за любую помощь, которую вы можете предоставить.

Ответы [ 3 ]

4 голосов
/ 31 мая 2011
private boolean downloadDropboxFile(String dbPath, File localFile) throws IOException{

    BufferedInputStream br = null;
    BufferedOutputStream bw = null;

    try {
        if (!localFile.exists()) {
            localFile.createNewFile(); //otherwise dropbox client will fail silently
        }

        FileDownload fd = api.getFileStream("dropbox", dbPath, null);
        br = new BufferedInputStream(fd.is);
        bw = new BufferedOutputStream(new FileOutputStream(localFile));

        byte[] buffer = new byte[4096];
        int read;
        while (true) {
        read = br.read(buffer);
        if (read <= 0) {
        break;
        }
        bw.write(buffer, 0, read);
        }
    } finally {
        //in finally block:
        if (bw != null) {
            bw.close();
        }
        if (br != null) {
            br.close();
        }
    }

    return true;
}

Источник: http://forums.dropbox.com/topic.php?id=23189&replies=5#post-159521

0 голосов
/ 06 августа 2015
private boolean downloadDropboxFile(String dbPath, File localFile) throws IOException{

    BufferedInputStream br = null;
    BufferedOutputStream bw = null;

    try {
        if (!localFile.exists()) {
            localFile.createNewFile(); //otherwise dropbox client will fail silently
        }

        FileDownload fd = api.getFileStream("dropbox", dbPath, null);
        br = new BufferedInputStream(fd.is);
        bw = new BufferedOutputStream(new FileOutputStream(localFile));

        byte[] buffer = new byte[4096];
        int read;
        while (true) {
        read = br.read(buffer);
        if (read <= 0) {
        break;
        }
        bw.write(buffer, 0, read);
        }
    } finally {
        //in finally block:
        if (bw != null) {
            bw.close();
        }
        if (br != null) {
            br.close();
        }
    }

    return true;
}

Это может работать на вас.

0 голосов
/ 05 июля 2013

если попробуйте эту ссылку, Загрузите файл из Dropbox и сохраните его в SDCARD действительно поможет полностью загрузить любой тип файла через Dropbox

...