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
2 years agoExplorer | Level 4
why is FolderId / SharedParentFolderId null or just missing for FileMetadata retrievals?
static void Main(string[] args)
{
DropboxClientConfig config = new DropboxClientConfig
{
MaxRetriesOnError = 0
};
DropboxClient dropbox...
- 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
Dropbox 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
2 years agoExplorer | 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-DB2 years agoDropbox 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).
- sbrownnw2 years agoExplorer | Level 4
I don't think you are understanding what we need. Given a File or Folder Metadata, I need its parent FolderId, all the time. Given the current API, it does not return that.
- Greg-DB2 years agoDropbox Staff
In your original sample code here, you already have access to the parent folder's ID (not the same as the shared folder ID), in folderMetadata.Id.
In cases where you don't already have that parent folder metadata object though, you can retrieve the parent folder ID, given the metadata of a file (or folder), like this:
var parentFolderPath = Directory.GetParent(fileMetadata.PathLower).ToString(); var parentFolderId = dropboxClient.Files.GetMetadataAsync(parentFolderPath).Result.AsFolder.Id;
(Note that this is just a basic example, and assumes that the parent of fileMetadata is not root itself.)
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,915 PostsLatest Activity: 4 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!