2017-07-26 65 views
3

我在我的iOS應用程序中使用SwiftyDropbox SDK,即時通訊只嘗試列出我的應用程序中的文件夾,然後用戶可以選擇一個文件夾(不是文件)。SwiftyDropbox列表文件夾

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. 
} 

進入

是>

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

我怎樣才能找到這個入口是文件夾,它包含子文件夾或不?

回答

3

你可以施放每個entryresult.entriesfor循環內這樣

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

Dropbox API不提供只列出文件夾的方法(儘管我們將其視爲功能請求),因此您需要列出所有內容並過濾掉文件。

可以區分之間FileMetadataFolderMetadata,並通過DeletedMetadata荷蘭國際集團switchMetadata的對象上shown in the README

如果您還需要子文件夾,則可在致電listFolder時指定recursive=true

相關問題