Google drive api 在谷歌硬盘文件中搜索文本需要时间
我有这个功能来搜索谷歌驱动器文件中的文本,搜索600个谷歌驱动器文件中的文本需要4分钟以上。有没有办法优化代码 System.out.println(“printFilesInFolder:”)Google drive api 在谷歌硬盘文件中搜索文本需要时间,google-drive-api,drive,Google Drive Api,Drive,我有这个功能来搜索谷歌驱动器文件中的文本,搜索600个谷歌驱动器文件中的文本需要4分钟以上。有没有办法优化代码 System.out.println(“printFilesInFolder:”) Files.List req=null; 列表结果=新建ArrayList(); Children.List请求=service.Children().List(folderId.setQ(“trashed=false”); 做{ 试一试{ ChildList children=request.exec
Files.List req=null;
列表结果=新建ArrayList();
Children.List请求=service.Children().List(folderId.setQ(“trashed=false”);
做{
试一试{
ChildList children=request.execute();
System.out.println(“children size>>>>:”+children.size());
for(ChildReference子项:children.getItems()){
System.out.println(“文件Id:+child.getId());
if(!(children.getItems().isEmpty()){
System.out.println(“非空”>>>>>>>”;
字符串子文件夹ID=child.getId();
req=service.files().list().setQ(“'”+子文件夹ID+“”),trashed=false,全文包含“+”关键字+“”;
做{
System.out.println(“内部do”+req.size());
尝试
{
试一试{
FileList children1=req.execute();
result.addAll(children1.getItems());
请求setPageToken(children1.getNextPageToken());
}捕获(IOE异常){
请求setPageToken(空);
}
}
捕获(例外e)
{
}
}
while(req.getPageToken()!=null&&req.getPageToken().length()>0);
}
}
request.setPageToken(children.getNextPageToken());
}捕获(IOE异常){
System.out.println(“发生错误:“+e”);
request.setPageToken(null);
}
}while(request.getPageToken()!=null&&
request.getPageToken().length()>0);
尝试使用。它从根文件夹开始,可以限制搜索时间,因为它不会递归扫描。仅返回此文件夹中与筛选条件匹配的直接条目。以下是and。该示例适用于android应用程序。
Files.List req = null;
List<File> result = new ArrayList<File>();
Children.List request = service.children().list(folderId).setQ("trashed=false");
do {
try {
ChildList children = request.execute();
System.out.println("children size >>>>>>>>>>> : "+ children.size());
for (ChildReference child : children.getItems()) {
System.out.println("File Id: " + child.getId());
if( !(children.getItems().isEmpty())){
System.out.println("not empty >>>>>>>>>");
String subFolderId = child.getId();
req = service.files().list().setQ("'"+subFolderId+"' in parents and trashed=false and fullText contains '"+keyword+"'");
do{
System.out.println("inside do " + req.size());
try
{
try {
FileList children1 = req.execute();
result.addAll(children1.getItems());
req.setPageToken(children1.getNextPageToken());
} catch (IOException e) {
req.setPageToken(null);
}
}
catch(Exception e)
{
}
}
while(req.getPageToken() != null && req.getPageToken().length() > 0);
}
}
request.setPageToken(children.getNextPageToken());
} catch (IOException e) {
System.out.println("An error occurred: " + e);
request.setPageToken(null);
}
} while (request.getPageToken() != null &&
request.getPageToken().length() > 0);