我正在创建一个可以将文件插入Google云端硬盘并列出的应用程序。我使用的是Google Drive SDK v2 API。但我的问题是它没有列出未通过我的应用程序上传的文件。如果我直接从Google云端硬盘上传,则不会在我的应用中列出。
以下是列出文件的方法:
private static List<File> retrieveAllFiles(Drive service) throws IOException {
List<File> result = new ArrayList<File>();
Files.List request = service.files().list();
do {
try {
FileList files = request.execute();
result.addAll(files.getItems());
request.setPageToken(files.getNextPageToken());
} catch (IOException e) {
System.out.println("An error occurred: " + e);
request.setPageToken(null);
}
} while (request.getPageToken() != null &&
request.getPageToken().length() > 0);
return result;
}
我正在迭代这样的文件:
List<File> files = retrieveAllFiles(service);
for(File f : files) {
System.out.println("File Name : "+f.getOriginalFilename();
}
有人能帮帮我吗?提前谢谢......
答案 0 :(得分:2)
我认为您使用了错误的oauth范围,可能会https://www.googleapis.com/auth/drive.file
限制您的应用访问由您的应用创建或打开的文件,当您应该使用https://www.googleapis.com/auth/drive
来完全控制您的应用时。
答案 1 :(得分:0)
我构建了我们都在寻找的功能。以下列出了google驱动器文件夹中的所有文件和文件夹。您可以指定是希望目录中的所有文件,还是只需要服务在目录中拥有的文件。只需要ID的天气,或者只需要文件名或者两者都需要的天气。
Library_GoogleDriveFileList:
$layoutW = 6;
$layoutH = 8;
$adCount = 3;
$ad1[‘x’] = 0;
$ad1[‘y’] = 0;
$ad1[‘w’] = 2;
$ad1[‘h’] = 2;
$ad2[‘x’] = 2;
$ad2[‘y’] = 1;
$ad2[‘w’] = 4;
$ad2[‘h’] = 7;
$ad3[‘x’] = 0;
$ad3[‘y’] = 6;
$ad3[‘w’] = 2;
$ad3[‘h’] = 2;