FilesUserRoutesListFolderAsync Method (String, Boolean, Boolean, Boolean, Boolean, Boolean, NullableUInt32, SharedLink, TemplateFilterBase, Boolean)
If you're using Recursive set to true to keep a local cache of the contents of a Dropbox account, iterate through each entry in order and process them as follows to keep your local state in sync:
For each FileMetadata, store the new entry at the given path in your local state. If the required parent folders don't exist yet, create them. If there's already something else at the given path, replace it and remove all its children.
For each FolderMetadata, store the new entry at the given path in your local state. If the required parent folders don't exist yet, create them. If there's already something else at the given path, replace it but leave the children as they are. Check the new entry's and set all its children's read-only statuses to match.
For each DeletedMetadata, if your local state has something at the given path, remove it and all its children. If there's nothing at the given path, ignore this entry.
Note: RateLimitError may be returned if multiple ListFolderAsync(ListFolderArg) or ListFolderContinueAsync(ListFolderContinueArg) calls with same parameters are made simultaneously by same API app for same user. If your app implements retry logic, please hold off the retry until the previous request finishes.
public Task<ListFolderResult> ListFolderAsync( string path, bool recursive = false, bool includeMediaInfo = false, bool includeDeleted = false, bool includeHasExplicitSharedMembers = false, bool includeMountedFolders = true, Nullable<uint> limit = null, SharedLink sharedLink = null, TemplateFilterBase includePropertyGroups = null, bool includeNonDownloadableFiles = true )
Public Function ListFolderAsync ( path As String, Optional recursive As Boolean = false, Optional includeMediaInfo As Boolean = false, Optional includeDeleted As Boolean = false, Optional includeHasExplicitSharedMembers As Boolean = false, Optional includeMountedFolders As Boolean = true, Optional limit As Nullable(Of UInteger) = Nothing, Optional sharedLink As SharedLink = Nothing, Optional includePropertyGroups As TemplateFilterBase = Nothing, Optional includeNonDownloadableFiles As Boolean = true ) As Task(Of ListFolderResult)
public: Task<ListFolderResult^>^ ListFolderAsync( String^ path, bool recursive = false, bool includeMediaInfo = false, bool includeDeleted = false, bool includeHasExplicitSharedMembers = false, bool includeMountedFolders = true, Nullable<unsigned int> limit = nullptr, SharedLink^ sharedLink = nullptr, TemplateFilterBase^ includePropertyGroups = nullptr, bool includeNonDownloadableFiles = true )
member ListFolderAsync : path : string * ?recursive : bool * ?includeMediaInfo : bool * ?includeDeleted : bool * ?includeHasExplicitSharedMembers : bool * ?includeMountedFolders : bool * ?limit : Nullable<uint32> * ?sharedLink : SharedLink * ?includePropertyGroups : TemplateFilterBase * ?includeNonDownloadableFiles : bool (* Defaults: let _recursive = defaultArg recursive false let _includeMediaInfo = defaultArg includeMediaInfo false let _includeDeleted = defaultArg includeDeleted false let _includeHasExplicitSharedMembers = defaultArg includeHasExplicitSharedMembers false let _includeMountedFolders = defaultArg includeMountedFolders true let _limit = defaultArg limit null let _sharedLink = defaultArg sharedLink null let _includePropertyGroups = defaultArg includePropertyGroups null let _includeNonDownloadableFiles = defaultArg includeNonDownloadableFiles true *) -> Task<ListFolderResult>