从Dropbox下载文件并将其保存到SDCARD

时间:2012-03-05 12:45:56

标签: android dropbox

我现在真的很沮丧..我想从Dropbox下载文件并将该文件保存到SDCARD中......我得到的代码为:

     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;

}

这里我在br = new BufferedInputStream line ..Pls help

上收到错误

1 个答案:

答案 0 :(得分:13)

我找到了方法:

      File file= new File("/sdcard/New_csv_file.csv");
      OutputStream out= null;
      boolean result=false;
      try {
            out = new BufferedOutputStream(new FileOutputStream(file));
        } catch (FileNotFoundException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        try {
               DropboxFileInfo info = mApi.getFile("/photos/New_csv_file.csv", null, out, null);
               Log.i("DbExampleLog", "The file's rev is: " + info.getMetadata().rev);
               Intent JumpToParseCSV=new Intent(context,ParseCSV.class);
                JumpToParseCSV.putExtra("FileName", file.getAbsolutePath());
                Log.i("path", "FileName"+ file.getAbsolutePath());
                 ((Activity) context).finish();
                context.startActivity(JumpToParseCSV);
                result=true;
            } catch (DropboxException e) {
               Log.e("DbExampleLog", "Something went wrong while downloading.");
               file.delete();
               result=false;
            }


    return result;

谢谢大家......