[英]SwiftyDropbox list folders only
我在我的iOS应用程序中使用SwiftyDropbox
SDK,我试图仅在我的应用程序中列出文件夹,然后用户可以选择一个文件夹(而不是文件)。
在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";
}
我怎么才能找到这个条目是文件夹,它是否包含子文件夹?
您可以在result.entries
每个entry
以for
循环
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)
}
}
Dropbox API不提供仅列出文件夹的方法(虽然我们将其视为功能请求),因此您需要列出所有内容并过滤掉文件。
您可以通过switch
Metadata
对象来区分FileMetadata
, FolderMetadata
和DeletedMetadata
,如README中所示 。
如果您还需要子文件夹,则可以在调用listFolder
时指定recursive=true
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.