Google Drive API - 文件父级列表始终为零

时间:2016-09-18 21:31:43

标签: swift google-drive-api

使用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")
        }
    })
}

1 个答案:

答案 0 :(得分:2)

我弄明白了:默认情况下,请求不会返回父列表,因此您需要设置一个字段字符串,其中包含您需要的字段。例如,如果您需要添加文件的名称,ID和父项:

searchQuery?.fields = "files(id,name,parents)"

查询。

重要:请注意,files(...)是v3 API的新语法,而在items(...)之前。