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

VyacheslavB's avatar
VyacheslavB
Helpful | Level 5
5 years ago

How to display folders in the file list Dropbox API (Swift 5)

I get a list of the user's files and then filter it to show only the music files. But I also want to see subfolders. How should I set up my filter for this? Could you help me.
My function where I get the list of files looks like this:

I also want to be able to enter a subfolder, as I understand it, for this I need to insert the path to the subfolder in path: "/ someFolder". But how can I get this path?

  • Greg-DB's avatar
    Greg-DB
    5 years ago

    To check if a particular entry is a file or a folder, you can check the type of the entry, such as by switching on it as shown in this example.

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

    If you want to access subfolders as well when listing a folder, you can set recursive:true when calling listFolder. That will make the results include nested entries as well. 

     

    Alternatively you can call separately to specifically list a particular subfolder, by passing in the path. To do so, get and pass in the relevant Metadata.pathLower.

     

    Either way, make sure you also have listFolderContinue implemented (as documented under listFolder) to make sure you're getting all of the entries. 

    • VyacheslavB's avatar
      VyacheslavB
      Helpful | Level 5

      If I want to use the second option (using the folder path), then how do I display only music files and folders? I use .hasSuffix for sorting, but then I cannot see the folder in the list.
      How can I separate folders from files in code. A file has its extension, but how to filter so that folders are visible in the list too?

      As you understand, I want to have some attribute to know this is folder or file.

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

        To check if a particular entry is a file or a folder, you can check the type of the entry, such as by switching on it as shown in this example.

  • roggerCorrea's avatar
    roggerCorrea
    Explorer | Level 3

    Hi Viyalexhab,

     

    How do you declare the variable fileList? 

    I'm trying t do the same thing, so I can append the files to it. But I can't figure out what type of variable you need to use to be able to append. 

     

    Thanks!

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

      roggerCorrea It looks like fileList would be an array, perhaps initialized like 'var fileList = [Any]()', or maybe more ideally 'var fileList = [Files.Metadata]()'.

       

      Your cast is failing because you're attempting to cast the entire array of Metadata, that is, your 'response', which is the listFolderResult?.entries, instead of individual Metadata entries.

       

      You should instead first iterate over the entries to get each entry, like the 'for entry in result.entries {' line in the original post shows.

      • roggerCorrea's avatar
        roggerCorrea
        Explorer | Level 3

        Hi Greg, thank you so much. I'm new to Swift and still figuring out many things. 

         

        This was of great help!