谷歌云端硬盘API - 文件父母列表总是零

问题描述:

当我搜索使用谷歌云端硬盘API文件与谷歌云端硬盘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") 
     } 
    }) 
} 

我想通了:默认情况下不退还家长名单,所以你需要设置一个字段串,包含请求你需要的领域。例如,如果您需要添加文件的名称,ID和父级:

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

查询。

重要:注意files(...)是第3版API的新语法,而在此之前它是items(...)