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

sbrownnw's avatar
sbrownnw
Explorer | Level 4
2 years ago

why is FolderId / SharedParentFolderId null or just missing for FileMetadata retrievals?

 

      static void Main(string[] args)
      {
         DropboxClientConfig config = new DropboxClientConfig
         {
            MaxRetriesOnError = 0
         };
         DropboxClient dropboxClient = new DropboxClient(AccessToken.ValidToken, config);
         var result = dropboxClient.Files.ListFolderAsync("").Result;
         var folderMetadata = result.Entries.Where(e => e.IsFolder).First() as FolderMetadata;
         result = dropboxClient.Files.ListFolderAsync(folderMetadata?.PathLower).Result;
         var fileMetadata = result.Entries.Where(e => e.IsFile).First() as FileMetadata;
         Debug.WriteLine($"fileMetadata is null: {fileMetadata == null} - folderId from ListFolderAsync: {fileMetadata?.ParentSharedFolderId}");
         fileMetadata = dropboxClient.Files.GetMetadataAsync(fileMetadata?.Id).Result as FileMetadata;
         Debug.WriteLine($"fileMetadata is null: {fileMetadata == null} - folderId from GetMetadataAsync: {fileMetadata?.ParentSharedFolderId}");
      }

 

Running above code returns the following:

 

 

 

  • DB-Des's avatar
    DB-Des
    2 years ago

    A feature request has been filed to include the parent folder ID in the metadata response object.

     

    I cannot promise when and if this will be implemented.

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox Staff

    The parent shared folder ID is only returned if the item is contained inside a shared folder. (Note that new folders in your home folder are not shared by default.) If the item is not in a shared folder, then ParentSharedFolderId will not be set. The output you shared indicates that the file you're checking is not in a shared folder.

     

    By the way, note that Metadata.ParentSharedFolderId is deprecated in favor of FileSharingInfo.SharingInfo.ParentSharedFolderId and FolderSharingInfo.SharingInfo.ParentSharedFolderId, so you should use fileMetadata?.SharingInfo?.ParentSharedFolderId instead. Note that SharingInfo will likewise not be set if the file is not in a shared folder.

    • sbrownnw's avatar
      sbrownnw
      Explorer | Level 4

      Feature request please for a File / Folder metadata item to always return its parent FolderId (whether it is shared or not).  Both path and parent FolderId are very important metadata items for these types.

      • Greg-DB's avatar
        Greg-DB
        Icon for Dropbox Staff rankDropbox Staff

        To clarify, FolderMetadata.Id and Metadata.ParentSharedFolderId are different types of identifiers.

         

        Shared folder IDs (such as in ParentSharedFolderId) are only created once a folder is shared. They can't always be returned since they may not exist yet.

         

        File and folder IDs (such as in FileMetadata.Id and FolderMetadata.Id) however, exist for all non-deleted files and folders. You can get always them from the FileMetadata or FolderMetadata. For example, that would be folderMetadata.Id or fileMetadata.Id in your sample code. If you have only the FileMetadata, you can get the FolderMetadata for its parent by using GetMetadataAsync and passing in the path of the parent (that is, the path of the file without its last path component).

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

5,882 PostsLatest Activity: 20 hours ago
325 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!