使用Google云端硬盘API获取文件列表时,我正在尝试查找文件的路径。
现在,我能够获取文件属性(当前仅获取校验和,id,名称和mimeType):
results = globalShares.service.files().list(pageSize=1000,corpora='user',fields='nextPageToken, files(md5Checksum, id, name, mimeType)').execute()
items = results.get('files',[])
nextPageToken = results.get('nextPageToken',False)
for file in items:
print("===========================================================")
pp.pprint(file)
print(str(len(items)))
print(nextPageToken)
List documentation(将参数传递给list()方法)
Files documentation(每个文件返回的属性)
答案 0 :(得分:2)
如果我的理解是正确的,那么该示例脚本如何?不幸的是,在当前阶段,Google API无法直接检索文件的文件夹树。因此,需要准备一个脚本来实现它。请认为这只是几个答案之一。
此示例脚本检索文件的文件夹树。使用此脚本时,请设置文件ID。
fileId = '###' # Please set the file ID here.
tree = [] # Result
file = globalShares.service.files().get(fileId=fileId', fields='id, name, parents').execute()
parent = file.get('parents')
if parent:
while True:
folder = service.files().get(
fileId=parent[0], fields='id, name, parents').execute()
parent = folder.get('parents')
if parent is None:
break
tree.append({'id': parent[0], 'name': folder.get('name')})
print(tree)
如果文件具有三层结构,则在运行脚本时,将返回以下对象。
[
{
"id": "folderId3",
"name": "folderName3"
},
{
"id": "folderId2",
"name": "folderName2"
},
{
"id": "folderId1",
"name": "My Drive" # This is the root folder.
}
]
parents
数组的第1个元素。请注意这一点。 pinoyyid's comment也提到了这一点。