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's avatar
SauravAnand
Explorer | Level 4
8 years ago

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,accessToken);
var metadata = api.GetFiles("dropbox", "");

But with v2 i'm trying now:

using (var client= new DropboxClient(accessToken))
{
    var list = await client.Files.ListFolderAsync(path);
}

 With the above code i'm getting all main folders and files which are created in the Root of Dropbox, but not getting sub-folders and files of main folders/sub-folders.

 

I was trying with ListFolderContinueAsync() but stuck with parameter 'cursor' which is required.

 

Any pointers or example would be great help.

Thank you.

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox 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. 

    • SauravAnand's avatar
      SauravAnand
      Explorer | 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.

       

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

5,878 PostsLatest Activity: 11 hours ago
326 Following

If 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!