Discuss Dropbox Developer & API
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 {
}
}
}
The path values you supply to the API should be paths relative to the root of the Dropbox account (or relative to the app folder root, if you're using an app with the app folder permission), not Dropbox web site URLs as you have here.
So, for example, to upload a file "myfile.txt" to your root, you would use "/myfile.txt". Or, to upload it into a subfolder "Documents", you would use "/Documents/myfile.txt".
You can also get the correct path values from Metadata.getPathLower, if/when you get the metadata for existing files elsewhere on the API:
https://dropbox.github.io/dropbox-sdk-java/api-docs/v3.0.x/com/dropbox/core/v2/files/Metadata.html#g...
If something's not working as expected, I'll be happy to help, but I'll need some more information. Please reply with the following for the current issue:
- the version number of the SDK/library you are using
- the steps to reproduce the current issue, including relevant code snippet(s)
- the full text of the unexpected output
- a screenshot showing where you're checking that the file is not actually 0 bytes
sdk version=
'com.dropbox.core:dropbox-core-sdk:3.0.8'
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("/Apps/AndroidDbAppStorage/"+name)
.download(outputStream);
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();
Intent intent = new Intent(mContext, LoginActivity.class);
mContext.startActivity(intent);
} else {
}
}
}
it return empty file
I don't see anything obviously wrong in this code. It seems to be mostly copied/modified from the sample.
Can you share the other things I requested though? I.e., the output you're getting, and how you're checking the original file? I recall from your previous thread that you had an issue in your code that result in 0 byte files being uploaded to you account. It sounds like you perhaps didn't fix all of them.
Hi there!
If you need more help you can view your support options (expected response time for a ticket is 24 hours), or contact us on X or Facebook.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!