cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Announcements
What’s new: end-to-end encryption, Replay and Dash updates. Find out more about these updates, new features and more here.

Discuss Dropbox Developer & API

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Re: what should be a file download path

what should be a file download path

kmsbs
Explorer | Level 4

what is the correct download path : 

 mDbxClient.files().download(Path =?);
 mDbxClient.files().download("https://www.dropbox.com/home/Apps/AndroidDbAppStorage")
.download(outputStream);

here its my code :

public  class DownloadFileTask extends AsyncTask<FileMetadata, Void, File> {

private final Context mContext;
private final DbxClientV2 mDbxClient;
String name,path;
private File file;
DownloadFileTask(Context context, DbxClientV2 dbxClient, String path,String name) {
mContext = context;
mDbxClient = dbxClient;
this.path = path;
this.name=name;
}

@Override
protected File doInBackground(FileMetadata... params) {
try {
file=new File(path+name);
// Download the file.
OutputStream outputStream = new FileOutputStream(file);
mDbxClient.files().download("https://www.dropbox.com/home/Apps/AndroidDbAppStorage")
.download(outputStream);

// Tell android about the file
Intent intent = new Intent(mContext, LoginActivity.class);
mContext.startActivity(intent);

return file;
} catch (DbxException | IOException e) {
}

return null;
}

@Override
protected void onPostExecute(File result) {
super.onPostExecute(result);
if (result.length()!=0) {
Toast.makeText(mContext, "File downloaded", Toast.LENGTH_SHORT).show();
} else {

}
}
}

 

13 Replies 13

kmsbs
Explorer | Level 4
output:
java.lang.NullPointerException: Attempt to invoke virtual method 'long java.io.File.length()' on a null object reference
at line :
protected void onPostExecute(File result) {
super.onPostExecute(result);
if (result.length()!=0) {
Toast.makeText(mContext, "File downloaded", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(mContext, LoginActivity.class);
mContext.startActivity(intent);
} else {

}
}

Greg-DB
Dropbox Staff

Thanks for sharing that error output! That shows that you're getting a 'NullPointerException' for the 'File result' in your 'onPostExecute'. That is, the object itself is null, which is not the same as saying the downloaded file has zero length.

 

You'll need to investigate why your code isn't actually returning the 'file' object. I suspect it's because something is going wrong with the downloading or writing of the file, but, upon closer inspection of your code, it seems you're not seeing it because you're silently throwing away potential exceptions here:

 

} catch (DbxException | IOException e) {
}

You should add error handling there to take handle any issues that may arise (e.g., if you don't have permission to write to the local file path you specified, etc.).

kmsbs
Explorer | Level 4

this is the error :

 

com.dropbox.core.v2.files.DownloadErrorException: Exception in 2/files/download: {".tag":"path","path":"not_found"}

Greg-DB
Dropbox Staff

@kmsbs Please don't post the same question in multiple places. It makes it harder to keep track of your question(s), and can cause spam for other people on older threads.

 

I see you also posted a new thread for this, so I'll follow up there:

 

https://www.dropboxforum.com/t5/API-Support-Feedback/path-not-found-error/m-p/284453#M17409

Need more support?