我已经将功能上传文件实现到谷歌驱动器。我按照quick start的指南做了。
现在我正在将功能上传文件发送到特定文件夹*(例如:将文件上传到“My_Folder_name”)*。我在API Reference找到了样本。问题是,如果我只知道文件夹的名称,我怎么能得到parentId(文件夹ID)。
我找不到任何按名称搜索文件夹的功能......
是通过获取所有文件来获取文件夹的唯一方法,然后检查MimeType是否等于“application / vnd.google-apps.folder”并将其与文件夹名称进行比较。
if("application/vnd.google-apps.folder".equals(body.getMimeType()) && "My_Folder_name".equals(body.getTitle()) ){
....
}
提前致谢。
您可以将q
查询参数添加到您的请求网址,并使用云端硬盘查询语言来限制您的搜索:
https://developers.google.com/drive/search-parameters
要仅搜索文件夹并按标题限制搜索,您的查询应如下所示:
mimeType = 'application/vnd.google-apps.folder' and title = 'My_Folder_name'
查询应如下:
mimeType='application/vnd.google-apps.folder' and name='foldername'
在Python中:
service.files().list(q="mimeType='application/vnd.google-apps.folder' and name='foldername'",
spaces='drive',
fields='nextPageToken, files(id, name)',
pageToken=page_token).execute()
注意:name='foldername'
不是title='foldername'
我想这会对你有所帮助
/*String pageToken = null;
do {
FileList fileList = driveService.files().list().setQ("'" + parentFolderId + "' in parents")
.setFields("nextPageToken, files(id,parents,name,mimeType)")
.setPageToken(pageToken).execute();
if (fileList.getFiles().size() == 0)
System.out.println("No data inside the folder");
for (File file : fileList.getFiles()) {
System.out.println(file.getId());
}
pageToken = fileList.getNextPageToken();
} while (pageToken != null);*/
你需要做两件事:
使用files.list(提供完整的文件资源)(https://developers.google.com/drive/v2/reference/files/list)。修改您的查询以添加要搜索的父ID。
父级中的mimeType ='application / vnd.google-apps.folder'和'folderId'