在Google Drive V2中,我们通过获取ParentReference对象并使用getIsRoot()方法查询来了解它。
在V3中,如果我们尝试获取Parent,我们没有任何ParentReference类,因此没有任何方法可以知道给定Id是否为root。
答案 0 :(得分:0)
file资源包含一个列表,告诉您父文件是什么。你应该很难创建自己的方法,告诉你它是否是根。
parents [] list包含该文件的父文件夹的ID。 如果未指定为创建请求的一部分,则将放置该文件 直接在My Drive文件夹中。更新请求必须使用 addParents和removeParents参数来修改值。
答案 1 :(得分:0)
每个文件和文件夹都有一个父除了 root(又名'我的云端硬盘'英文)。因此,如果您的文件元数据告诉您它是一个文件夹,并且它没有父项,那么暗示它是root。 NB请参阅danielx的评论。在某些罕见的情况下,文件夹可能是孤立的,因此需要进行额外的测试。
在伪代码中
boolean isRoot(File file) {
return (file.parents.size == 0
&& file.mimeType == "application/vnd.google-apps.folder")
}
我查看了旧版本库的源代码,以查看getIsRoot()
方法的实际实现。它暴露了ParentsReference资源的isRoot属性。因此,您仍然可以使用v2 REST调用来访问此属性,特别是https://developers.google.com/drive/v2/reference/parents#resource
话虽如此,但无法保证在未来,Drive不会有多个根源(例如,针对不同的域)。
也许最安全的方法是: -
答案 2 :(得分:0)
这是不可能的,您必须get the root folder并存储其ID以与。
进行比较