如何在Google API v3中的特定文件夹内搜索文件

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)


Rey*_*cia 0

尚不支持按文件夹名称搜索文件。在此谷歌论坛中已提出要求,但到目前为止,还没有任何结果。但是,请尝试在“搜索文件”中查找其他可用的替代搜索过滤器。

要有创意。例如,确保某个文件夹中的文件包含唯一的关键字,然后您可以使用该关键字进行查询

 fullText contains 'my_unique_keyword'
Run Code Online (Sandbox Code Playgroud)