使用以下代码:
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)
请求它,它也不会返回它。
必须有一些我还不知道它是如何工作的东西。谁知道怎么做?
答案 0 :(得分:1)
如果要检查字段的explicitlyTrashed
或fields=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