You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.
Forum Discussion
SauravAnand
8 years agoExplorer | Level 4
Get source URL of Photo/Video - Dropbox API v2 - C#
Hi, I need to get source URL's of each photos or videos on Dropbox account. Earlier with v1 is i was gettting file path like below: var api = new DropboxApi(dropbox_appkey, dropbox_appsecret...
- 8 years ago
To get the sub-files and folders, you'll need to set the recursive parameter. So, for example, instead of:
var list = await client.Files.ListFolderAsync(path);
you would use:
var list = await client.Files.ListFolderAsync(path, recursive:true);
The "path" you then pass in to DownloadAsync should be the "PathLower" you retrieved from the FileMetadata. (Alternatively, the "Id" would also work.) There's an example of getting the file data from the response of DownloadAsync here.
Greg-DB
8 years agoDropbox Staff
Using ListFolderAsync (and ListFolderContinueAsync) is the right way to list out files and folders in a Dropbox account via API v2 in .NET.
If you want sub-folders and sub-files though, you'll need to explicitly set the recursive parameter for ListFolderAsync to true. There's more information on that in the documentation there.
Make sure you check the returned ListFolderResult.HasMore and call back to ListFolderContinueAsync if it's true (and so on with the result of ListFolderContinueAsync itself as well. The cursor you pass in to ListFolderContinueAsync is available in the ListFolderResult.Cursor.
Once you have the file metadata, you can use other method such as DownloadAsync to get the file content, or CreateSharedLinkWithSettingsAsync to create shared links.
- SauravAnand8 years agoExplorer | Level 4
Hi,
I'm using below code at the top of the method.
var list = await client.Files.ListFolderAsync(path);
Now while debug i get folder's & file's info which are in the Root of Dropbox account, but there are sub-folders too and each folders/sub-folders contains photos/videos.
Folders are available by "list.Entries.Where(i => i.IsFolder)" & files are by "list.Entries.Where(i => i.IsFile)".
After completing avove two loops i have written 'list.HasMore' condition but getting false, then how i will call ListFolderContinueAsync() to get more files.
I'm really confused about the parameters in both methods ListFolderAsync(string path) // what should be the path here?
And ListFolderContinueAsync(string cursor) // what should be the cursor here? [list.Cursor] will be correct parameter?
My main requirement is to get source URL's of all photos/videos under Dropbox account so that later i can use DownloadAsync(string path) method to download files in my local machine. Parameter 'path' of the DownloadAsync() will be the photo/video source URL, correct?
If yes then i would like to know where i can define the destination local machine path to download to?
Thanks for your answer.
- Greg-DB8 years agoDropbox Staff
To get the sub-files and folders, you'll need to set the recursive parameter. So, for example, instead of:
var list = await client.Files.ListFolderAsync(path);
you would use:
var list = await client.Files.ListFolderAsync(path, recursive:true);
The "path" you then pass in to DownloadAsync should be the "PathLower" you retrieved from the FileMetadata. (Alternatively, the "Id" would also work.) There's an example of getting the file data from the response of DownloadAsync here.
- SauravAnand8 years agoExplorer | Level 4Hi Greg,
Thanks for your prompt help. I have tried and it worked as expected.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,878 PostsLatest Activity: 2 hours agoIf you need more help you can view your support options (expected response time for an email or 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!