2017-07-26 4 views
3

Ich benutze SwiftyDropbox SDK in meiner iOS-Anwendung, ich versuche, Ordner nur in meiner App aufzulisten, dann kann der Benutzer einen Ordner (keine Datei) auswählen.Nur SwiftyDropbox-Listenordner

in ViewController =>viewDidLoad

override func viewDidLoad() { 
    super.viewDidLoad() 

    guard let dropboxClient = DropboxClientsManager.authorizedClient else{ 
     return 
    } 

    let listFolders = dropboxClient.files.listFolder(path: "") 
    listFolders.response{ response, error in 
     guard let result = response else{ 
      return 
     } 

     for entry in result.entries{ 
      print(entry) 
     } 
    } 
    // Do any additional setup after loading the view, typically from a nib. 
} 

Eintrag>

{ 
     id = "id:0GMPvYwuVEAAAAAAAAAABw"; 
     name = "Folder A"; 
     "path_display" = "/Folder A"; 
     "path_lower" = "/folder a"; 
    } 

Wie kann ich diesen Eintrag Ordner finden und es enthält Unterordner oder nicht?

Antwort

3

können Sie jede entry werfen innerhalb Ihrer result.entriesfor Schleife wie diese

override func viewDidLoad() { 
    super.viewDidLoad() 

    guard let dropboxClient = DropboxClientsManager.authorizedClient else{ 
     return 
    } 

    for entry in result.entries{ 
     guard let file = entry as? Files.FolderMetadata else{ 
     return 
     } 

     // only folders 
     print(entry) 

     // ********* or 
     gurad let entry is Files.FolderMetadata else{ 
     return 
     } 

     // only folders 
     print(entry) 
    } 
} 
3

Die Dropbox-API bietet keine Möglichkeit, nur Ordner aufzulisten (obwohl wir es als Feature-Anfrage betrachten), also müssen Sie alles auflisten und Dateien ausfiltern.

können Sie unterscheiden zwischen FileMetadata, FolderMetadata und DeletedMetadata von switch auf dem Metadata Objekt als shown in the README ing. Wenn Sie auch Unterordner benötigen, können Sie beim Aufruf recursive=truelistFolder angeben.

Verwandte Themen