Raj*_*hoo 5 java google-api google-drive-api
由于我正在使用Google API的v3版本,因此必须使用fileList,而不是使用父级和子级列表,所以现在我要搜索特定文件夹中的文件列表。所以有人可以建议我该怎么办?
这是我用来搜索文件的代码:
private String searchFile(String mimeType,String fileName) throws IOException{
Drive driveService = getDriveService();
String fileId = null;
String pageToken = null;
do {
FileList result = driveService.files().list()
.setQ(mimeType)
.setSpaces("drive")
.setFields("nextPageToken, files(id, name)")
.setPageToken(pageToken)
.execute();
for(File f: result.getFiles()) {
System.out.printf("Found file: %s (%s)\n",
f.getName(), f.getId());
if(f.getName().equals(fileName)){
//fileFlag++;
fileId = f.getId();
}
}
pageToken = result.getNextPageToken();
} while (pageToken != null);
return fileId;
}
Run Code Online (Sandbox Code Playgroud)
但是在这种方法中,它给了我不想生成的所有文件。我想创建一个FileList,它将在特定文件夹内提供文件。
Say*_*r Y 10
现在可以使用parentsinq参数中的术语来做到这一点drives:list。例如,如果您想在带有 id 的文件夹中查找所有电子表格,folder_id您可以使用以下q参数(我在我的示例中使用的是 python):
q="mimeType='application/vnd.google-apps.spreadsheet' and parents in '{}'".format(folder_id)
Run Code Online (Sandbox Code Playgroud)
请记住,您应该找出要在其中查找的文件夹文件的 ID。您可以使用相同的drives:list.
更多的信息drives:list方法可以看到这里,你可以阅读更多有关你可以把其他条款q参数这里。
小智 8
要在特定目录中搜索,您必须指定以下内容:
q : name = '2021' and mimeType = 'application/vnd.google-apps.folder' and '1fJ9TFZOe8G9PUMfC2Ts06sRnEPJQo7zG' in parents
Run Code Online (Sandbox Code Playgroud)
此示例在包含 1fJ9TFZOe8G9PUMfC2Ts06sRnEPJQo7zG 的文件夹中搜索名为“2021”的文件夹
就我而言,我正在用 C++ 编写代码,请求网址为:
string url = "https://www.googleapis.com/drive/v3/files?q=name+%3d+%272021%27+and+mimeType+%3d+%27application/vnd.google-apps.folder%27+and+trashed+%3d+false+and+%271fJ9TFZOe8G9PUMfC2Ts06sRnEPJQo7zG%27+in+parents";
Run Code Online (Sandbox Code Playgroud)
尚不支持按文件夹名称搜索文件。在此谷歌论坛中已提出要求,但到目前为止,还没有任何结果。但是,请尝试在“搜索文件”中查找其他可用的替代搜索过滤器。
要有创意。例如,确保某个文件夹中的文件包含唯一的关键字,然后您可以使用该关键字进行查询
fullText contains 'my_unique_keyword'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1645 次 |
| 最近记录: |