Google Drive SDK API未列出Google Drive在Google中上传的文件

时间:2013-03-26 06:50:08

标签: java google-drive-api

我正在创建一个可以将文件插入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();
        }

有人能帮帮我吗?提前谢谢......

2 个答案:

答案 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;