查询根目录中的文件和文件夹列表

时间:2012-07-29 02:18:32

标签: google-drive-api

我想在根目录中获取文件和文件夹列表,而不必对所有文件进行排序。是否有可以执行此操作的查询?

4 个答案:

答案 0 :(得分:26)

根文件夹也可以使用名为“root”的特殊别名进行寻址,因此您可以使用以下查询获取根目录中的所有文件和文件夹:

https://www.googleapis.com/drive/v2/files?q='root' in parents

如果不使用其中一个客户端库(它们会自动处理它),请记住转义URL。

有关搜索查询语言的详细信息,请查看https://developers.google.com/drive/search-parameters

答案 1 :(得分:6)

此代码将显示 ROOT DIRECTORY 的所有文件和文件夹。只需复制并粘贴此代码,您将获得所有root文件和文件夹。

 List<File> result = new ArrayList<File>();
    Files.List request = null;

    try {
          request = mService.files().list();
          FileList files = request.setQ("'root' in parents and trashed=false").execute();
          result.addAll(files.getItems());          
          request.setPageToken(files.getNextPageToken());
        } 
      catch (IOException e)
      {
        System.out.println("An error occurred: " + e);
        request.setPageToken(null);
      }

 //Print out all the files and folder of root Directory  
  for(File f:result)
  {
      System.out.println("recvd data are: "+f.getTitle());
  }

答案 2 :(得分:0)

Google驱动器v3 Reference the documentation有助于创建DriveClient对象。

在后台线程(Android)中运行以下方法。

注意:必需的范围权限“ DriveScopes.DRIVE”

 protected String[] getListChildren(String parentId) throws Exception {
    String[] children = null;
   parentId = parentId == null ? "root" : parentId;
    String fileQuery = "'" + parentId + "' in parents and trashed=false";
    FileList files = driveService.files().list().setQ(fileQuery).execute();
    List<String> fileNames = new ArrayList<String>();
    for (File file : files.getFiles()) {
        fileNames.add(file.getName());
    }
    children = fileNames.toArray(new String[0]);
    return children;
}

答案 3 :(得分:0)

共享云端硬盘的查询应该是 "'driveId' in parents

使用 'root' 仅适用于我的云端硬盘