使用gapi.client.drive.files.list

时间:2018-01-29 01:50:15

标签: google-drive-api

使用以下代码:

gapi.client.drive.files.list({
  "q": "name='bait7-the-link-building-tool' and 'root' in parents"
})
  .then((response) => {
    if (response.result && response.result.files && response.result.files[0]) {
      console.log("response.result.files[0]", response.result.files[0]);
      return response.result.files[0].id;
      //
    } else {
      //create the folder;
    }
  }, (error) => {
    console.error(error);
  });

我可以检查当前用户google驱动器的根目录中是否存在文件夹。 而'root' in parents确实有效,如果文件夹不在根目录中,我就没有结果。

但是......如果文件夹已被删除/删除,而不是永久删除,它仍然会返回结果,就像google drive trashcan是root用户一样。

我尝试检查父级将fields: 'files(kind,id,name,parents)'添加到查询中,但是该文件夹位于根目录中,或者位于垃圾箱中,它始终显示相同的父ID,这使我认为它就像它的方式一样谷歌驱动器,垃圾桶中的文件确实是谷歌的根文件。

我知道如果我想要一起跳过文件夹/文件我可以更改查询以包含and trashed=false但是如果您仍然想要找到该文件但知道它是否已被删除该怎么办?

在文件定义中有一个字段trashedTime,但即使你用fields: files(kind,id,name,parents,trashedTime)请求它,它也不会返回它。

必须有一些我还不知道它是如何工作的东西。谁知道怎么做?

3 个答案:

答案 0 :(得分:1)

如果要检查字段的explicitlyTrashedfields=files(trashed,explicitlyTrashed)怎么样?它是size_t x; ... __builtin_uaddll_overflow(x,1,&x); 。如果是,则表示该文件位于垃圾箱中。

参考:

如果我误解了你的问题,我很抱歉。

答案 1 :(得分:0)

您是否尝试将trashed false添加到搜索参考中?

name='bait7-the-link-building-tool' and 'root' in parents and trashed = false'

这将确保不返回已删除的文件。 Doc on search

答案 2 :(得分:0)

您可以使用q URL parameter来过滤掉已被丢弃的文件:

https://www.googleapis.com/drive/v3/files?q=mimeType='application/vnd.my-mime-type' and trashed=false