2017-08-01 76 views
2

因为我使用谷歌API的V3,所以,而不是使用父母和孩子列表我不得不使用fileList,所以现在我想搜索一个特定的文件列表夹。 那么有人可以建议我该怎么做?如何搜索谷歌API V3中的特定文件夹里面的文件

这里是我使用搜索的文件中的代码:

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; 
} 

但这种方法,给我所有的生成,我不want.I希望创建一个文件列表中的文件,这将在特定文件夹内提供文件。

回答

0

不支持按文件夹名称搜索文件。这是google forum,但迄今为止还没有任何要求。但是,请尝试查找Search for Files中提供的其他替代搜索过滤器。

要有创意。例如确保一定的文件夹中的文件包含了然后你就可以查询使用

fullText contains 'my_unique_keyword' 
0

您可以使用此方法从谷歌搜索驱动器中的文件的唯一关键字。

Files.List request = this.driveService.files().list(); 
    noOfRecords = 100; 
    request.setPageSize(noOfRecords); 
    request.setPageToken(nextPageToken); 
    String searchQuery = "(name contains 'Hello')"; 
    if (StringUtils.isNotBlank(searchQuery)) { 
     request.setQ(searchQuery); 
    } 
    request.execute(); 
+0

这是文件的通用搜索,而不是“搜索特定文件夹名称内的文件”。 – noogui

相关问题