0

我從谷歌驅動器中獲取文件,就像那樣。 文件夾的結果。 OK,谷歌驅動器API - 文件是否有兒童或不是

列表結果,所以我要找到,如果結果(我)有孩子與應用/ vnd.google-apps.folder MIME類型與否。

換句話說,方法是檢查:如果當前文件夾包含子文件夾,則返回true。否則返回false;

我在谷歌App引擎中使用它。

我該怎麼做?

public void getAllFiles(String id, Drive service) throws IOException{ 

     String query="'"+id + "'"+ " in parents and trashed=false and mimeType=application/vnd.google-apps.folder'"; 
     FileList files = service.files().list().setQ(query).execute(); 

     List<File> result = new ArrayList<File>(); 
     Files.List request = service.files().list(); 

     do { 
      result.addAll(files.getItems()); 
      request.setPageToken(files.getNextPageToken()); 
     } while (request.getPageToken() != null && request.getPageToken().length() > 0); 

    } 

我做要創建額外的請求(新的兒童要求每個節點),看它是否有子女或沒有。類似的東西:

for (File file : result) { 

      query = "'" + file.getId() + "'" + " in parents and trashed=false and mimeType='application/vnd.google-apps.folder'"; 
      FileList fileChild = service.files().list().setQ(query).execute(); 
      List<File> res = new ArrayList<File>(); 
      Files.List req = service.files().list(); 

       do { 
        res.addAll(fileChild.getItems()); 
        req.setPageToken(fileChild.getNextPageToken()); 
       } while (req.getPageToken() != null && req.getPageToken().length() > 0); 


      RemoteFolder remFolder = new RemoteFolder(); 
      remFolder.setFile(file); 
      if(res.size()>0){ 
       remFolder.setChildrenable(true); 
       log.info("folder named "+file.getTitle() + " have children folders count: "+ res.size()); 
      } 

      folderList.add(remFolder); 

     } 

我想優化我的代碼。

回答

0

您必須爲每個節點提出另一個請求。如果你想避免使用memcached過多的調用。

+0

memcached是什麼意思?我不知道。是的,我爲每個節點做了另一個請求。我的代碼寫在我的問題。我可以優化它以更快嗎?或者如何在這裏創建memcached? – grep

+0

我需要一個例子 – grep

+0

很多關於memcached的例子,如果你google的話。 –

相關問題