我正在寻找有关通过JavaScript中的Box API遍历文件夹结构的最佳方法的指导。我需要根据Box API的响应递归循环结构,并对返回的文件和文件夹采取措施。
当找到一个文件夹时,我需要获取所有包含项目的文件夹,如果该文件夹包含带有项目的文件夹,我还需要获取这些文件夹,依此类推。见下面的例子:
StartingFolder
Folder1A
File1B
Folder2B
Folder1C
File1D
File2C
Folder3B
File4B
Folder2A
Folder1B
File1C
Folder2B
Folder1C
File1D
File2B
Folder3A
File1B
所有这些项目均由id
和type
标识。所以我知道,如果我找到一个包含type: "folder"
的项目,那么我需要向Box发出另一个请求以使用其id
获取其项目。我可以在第一级轻松完成此操作,但我不知道如何遍历整个结构到每个分支的底部。
任何人可以提供的示例或最佳实践都会很棒!
答案 0 :(得分:0)
我没有JavaScript示例,但这是Python中的一个。希望它能给你一些关于如何进行的概念性指导。
def doSomethingWithFolder(folder):
# Do something with the folder here
def recurse(folderId):
# get the folder contents
contents = client.folder(folder_id=folderId).get_items(limit=1000, offset=0)
# filter the contents for just the subfolders based on the 'type' property
folders = filter(lambda x: x.type=="folder", contents)
# for each subfolder...
for folder in folders:
# ... take some action on the subfolder ...
doSomethingWithFolder(folder)
# ... and recurse using the 'id' property
recurse(folder.id)
recurse("0") # recurse starting from the root, or substitute another folder ID.