首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅SwiftyDropbox列表文件夹

仅SwiftyDropbox列表文件夹
EN

Stack Overflow用户
提问于 2017-07-26 08:12:57
回答 2查看 1K关注 0票数 4

我在我的iOS应用程序中使用iOS SDK,我只想在我的应用程序中列出文件夹,这样用户就可以选择一个文件夹(而不是文件)。

ViewController => viewDidLoad

代码语言:javascript
复制
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.
}

条目是>

代码语言:javascript
复制
  { 
      id = "id:0GMPvYwuVEAAAAAAAAAABw";
      name = "Folder A";
      "path_display" = "/Folder A";
      "path_lower" = "/folder a";
  }

如何找到这个条目是文件夹,它是否包含子文件夹?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-26 15:48:39

您可以像这样在result.entries for循环中转换每个for

代码语言:javascript
复制
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)
    }
}
票数 6
EN

Stack Overflow用户

发布于 2017-07-26 15:19:50

Dropbox并不提供一种只列出文件夹的方法(尽管我们会认为它是一个特性请求),所以您需要列出所有的内容并过滤掉文件。

您可以通过将FileMetadata对象上的FolderMetadata对象定义为如自述所示来区分Metadataswitch如自述所示

如果您也需要子文件夹,则可以在调用recursive=true时指定listFolder

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45321080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档