使用Google Drive API
搜索文件时let searchQuery = GTLQueryDrive.queryForFilesList()
并在完成后打印每个文件的父母
for file in response.files as! [GTLDriveFile] {
print("Parents for \(file.name!): \(file.parents)")
}
无论文件位于多少个文件夹,父母列表始终为nil
。为什么会出现这种情况?
这是我用来演示这个问题的完整功能:
func searchForAllFilesAndParents(){
let searchQuery = GTLQueryDrive.queryForFilesList()
searchQuery?.q = "trashed = false"
service.executeQuery(searchQuery!, completionHandler: { (ticket: GTLServiceTicket?, response: Any, error: Error?) in
if let error = error {
print("Error while searching for all files: \(error.localizedDescription)")
return
}
if let filesList = response as? GTLDriveFileList, let files = filesList.files, !files.isEmpty {
print("\(files.count) files found)")
for file in files as! [GTLDriveFile] {
print("Parents for \(file.name!): \(file.parents)")
}
} else {
print("No files were found")
}
})
}
答案 0 :(得分:2)
我弄明白了:默认情况下,请求不会返回父列表,因此您需要设置一个字段字符串,其中包含您需要的字段。例如,如果您需要添加文件的名称,ID和父项:
searchQuery?.fields = "files(id,name,parents)"
查询。
重要:请注意,files(...)
是v3 API的新语法,而在items(...)
之前。