我想在根目录中获取文件和文件夹列表,而不必对所有文件进行排序。是否有可以执行此操作的查询?
答案 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'
仅适用于我的云端硬盘。