驱动Api v3不返回根文件夹中的所有文件

时间:2016-07-23 17:50:10

标签: java google-drive-api

我使用以下代码从google驱动器的根文件夹中检索所有文件。

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

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

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

但问题是仍然没有检索到所有文件,而是始终只从驱动器返回14个文件。任何人都可以指导我在哪里出错。

谢谢,

1 个答案:

答案 0 :(得分:0)

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

HTTP请求:

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

使用参数root的别名folderId列出根文件夹中的所有文件。所有对Google Drive API的请求必须由经过身份验证的用户授权。 Google云端硬盘使用OAuth 2.0协议对Google帐户进行身份验证并授权访问用户数据。您也可以使用OAuth 2.0

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