SwiftyDropbox 仅列出文件夹
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";
}
我怎么才能找到这个条目是文件夹,它是否包含子文件夹?
Dropbox API 不提供仅列出文件夹的方法(尽管我们将其视为一项功能请求),因此您需要列出所有内容并过滤掉文件。
您可以通过 switch
在 Metadata
对象上 shown in the README 来区分 FileMetadata
、FolderMetadata
和 DeletedMetadata
。
如果您还需要子文件夹,您可以在调用 listFolder
时指定 recursive=true
。
您可以像这样在 result.entries
for
循环中投射每个 entry
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)
}
}
我在我的 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";
}
我怎么才能找到这个条目是文件夹,它是否包含子文件夹?
Dropbox API 不提供仅列出文件夹的方法(尽管我们将其视为一项功能请求),因此您需要列出所有内容并过滤掉文件。
您可以通过 switch
在 Metadata
对象上 shown in the README 来区分 FileMetadata
、FolderMetadata
和 DeletedMetadata
。
如果您还需要子文件夹,您可以在调用 listFolder
时指定 recursive=true
。
您可以像这样在 result.entries
for
循环中投射每个 entry
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)
}
}