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

trithanhnguyen's avatar
trithanhnguyen
Helpful | Level 6
3 years ago

dbxClient.files().listFolder("") only returns 1 folder

I want to list all the files under my member ID. I use the following code and it only show 1 folder even though I have 8 folders starting from root.

 

DbxClientV2 dbxClient = dbxTeamClient.asMember(teamMemberId);
ListFolderResult fileRes = dbxClient.files().listFolder("");
List<Metadata> folders = fileRes.getEntries();
String metaDataCursor = fileRes.getCursor();

while (true)
{
for (Metadata metadata : folders)
{
String type;
String details;
if (metadata instanceof FileMetadata)
{
FileMetadata fileMetadata = (FileMetadata) metadata;
type = "file";
details = "(rev=" + fileMetadata.getRev() + ")";
}
else if (metadata instanceof FolderMetadata)
{
FolderMetadata folderMetadata = (FolderMetadata) metadata;
type = "folder";
details = folderMetadata.getSharingInfo() != null ? "(shared)" : "";
}
else if (metadata instanceof DeletedMetadata)
{
type = "deleted";
details = "";
}
else
{
throw new IllegalStateException("Unrecognized metadata type: " + metadata.getClass());
}

System.out.printf("\t%10s %24s \"%s\"\n", type, details, metadata.getPathLower());
}

if (!fileRes.getHasMore())
{
break;
}
// update cursor to fetch remaining results
fileRes = dbxClient.files().listFolderContinue(metaDataCursor);
folders = fileRes.getEntries();
metaDataCursor = fileRes.getCursor();
}

I then changed my code as the following then it shows the first folder and all the folder and files from that branch but the left 7 folder are not show at all. Any suggestiong to fix it?
TThank you.
DbxClientV2 dbxClient = dbxTeamClient.asMember(teamMemberId);
ListFolderBuilder builder = dbxClient.files().listFolderBuilder("");
builder.withRecursive(true);
ListFolderResult fileRes = builder.start();


 

  • Здравко's avatar
    Здравко
    3 years ago

    trithanhnguyen wrote:

    ... Do I need to do some extra setup to list all 3 folders. Thanks.


    In all cases you need to set your root to appropriate one using withPathRoot in addition to asMember, if desired folders reside in out of your account's user/member home (as seems it is).

  • Здравко's avatar
    Здравко
    Legendary | Level 20

    trithanhnguyen wrote:

    I want to list all the files under my member ID. I use the following code and it only show 1 folder even though I have 8 folders starting from root.

    ...


    You are listing all files in your user/member home folder (recursive eventually). If your rest folders are team folders/spaces then you need to enumerate your root. On personal accounts root matches home, but on business account home is only part on all root content!

    Hope this gives direction.

    • trithanhnguyen's avatar
      trithanhnguyen
      Helpful | Level 6

      From 8 folders I have in my account, 3 of them I created by myself. So at least the list folder API should return that 3 folders, but it did not. Do I need to do some extra setup to list all 3 folders. Thanks.

      • Здравко's avatar
        Здравко
        Legendary | Level 20

        trithanhnguyen wrote:

        ... Do I need to do some extra setup to list all 3 folders. Thanks.


        In all cases you need to set your root to appropriate one using withPathRoot in addition to asMember, if desired folders reside in out of your account's user/member home (as seems it is).