【问题标题】:Retrieving top level files in shared with me from google drive v3 java api从 google drive v3 java api 中检索与我共享的顶级文件
【发布时间】:2022-02-07 21:00:05
【问题描述】:

我只想使用 java api (v3) 从谷歌驱动器中查询顶级文件。 (顶级,我的意思是我不想递归地进入文件夹)

我检查了this question,但它似乎没有合适的解决方案(即使它有一个公认的解决方案)。

我已经尝试了几件事:

1) 我尝试设置 Query

 // this gives the shared files, but gives all files, not just the top files
 Files.List request = drive.files().list().setQ("sharedWithMe = true");

2) 我在某处读到 与我共享 中的顶级文件没有任何父级,因此我尝试获取没有任何父级的文件

类似于我的云端硬盘文件的 'root' in parents,我尝试了几个查询:

  drive.files().list().setQ("sharedWithMe = true and null in parents");

  drive.files().list().setQ("sharedWithMe = true and parents = null");

但它们似乎不起作用。

3) 我尝试获取所有文件,然后尝试仅选择没有父级的文件。

   Files.List request = drive.files().list()
    .setQ("sharedWithMe = true)
    .setFields("nextPageToken, files(id, name, parents)");

即使在输出字段中包含 parents 之后,File.getParents() 也会给出 NULL(即使对于具有父级的文件也是如此)。

问题:

有没有一种方法可以使用 Files.list() 获取每个文件的父母信息?

有没有办法在与我共享文件夹的顶层获取文件?(通过添加一些查询以及 sharedWithMe = true)

【问题讨论】:

  • 我能想到的唯一解决方案是使用别名root 来引用提供文件ID 的任何位置的根文件夹。请参阅Work with Folders 和相关的SO post 了解更多信息。
  • @Teyam 我认为 SO 帖子给出了My drive root 的 id,不是吗?如果我知道与我共享​​>中的文件ID,有没有办法找到它的根?
  • 你解决过这个问题吗?
  • @casolorz 不,我没有找到任何方法来做到这一点。但我最后一次看到这个是在 2017 年 6 月,我不确定它在那之后是否改变了。
  • 环顾四周,似乎要求与我共享文件夹将导致仅获取与您共享的根文件夹。如果您不想在那里显示他们,您可以过滤那些有父母的人。

标签: java google-drive-api


【解决方案1】:

使用 Google Drive API V3 中的以下代码,我可以获得与我共享的根级别文件的列表。

首先使用以下代码获取与我共享的文件和文件夹

FileList sharedWithMeResult = drive.files().list().setQ("sharedWithMe=true").execute();

要过滤掉文件夹,你可以这样做

List<com.google.api.services.drive.model.File> sharedWithMeFiles = sharedWithMeResult.getFiles();

for (com.google.api.services.drive.model.File file : sharedWithMeFiles) 
{
    if(file.getMimeType().contains("vnd.google-apps.folder"))
        continue;
    else
       System.out.println("Shared File Name = " + file.getName());
}

【讨论】:

    猜你喜欢
    • 2022-12-01
    • 1970-01-01
    • 2016-07-31
    • 2020-07-22
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多