Google api “指定后如何递归读取子文件夹”;“一个文件夹”;父母?

Google api “指定后如何递归读取子文件夹”;“一个文件夹”;父母?,google-api,google-drive-api,Google Api,Google Drive Api,基本上,在GoogleDriveAPI中,我试图读取驱动器中的指定文件夹 例如root/Temp/TestFiles/AreInHere 我想读取“AreInHere”中的所有文件,我可以使用指定所需文件夹id的查询来执行此操作。例如,“在父母中”存在“ 这很好,正如我所期望的那样,它还返回我文件夹中的所有子目录,但不会隐秘地获取包含这些子目录的任何文件 我已经查看了API参考和所有用于搜索的文档,但没有找到任何OOTB 非常感谢您的任何帮助或建议 提前感谢很遗憾,使用驱动器API无法自动列出子

基本上,在GoogleDriveAPI中,我试图读取驱动器中的指定文件夹

例如root/Temp/TestFiles/AreInHere

我想读取“AreInHere”中的所有文件,我可以使用指定所需文件夹id的查询来执行此操作。例如,“在父母中”存在“

这很好,正如我所期望的那样,它还返回我文件夹中的所有子目录,但不会隐秘地获取包含这些子目录的任何文件

我已经查看了API参考和所有用于搜索的文档,但没有找到任何OOTB

非常感谢您的任何帮助或建议

提前感谢

很遗憾,使用驱动器API无法自动列出子文件夹中包含的文件 相反,您需要使用一个递归函数来动态查找所有子文件夹和子文件夹的子文件夹,无论级别是多少

使您的生活更轻松的方法是将父对象的
id
动态指定为
q
,并查询文件的
mimeType

您不指定您的语言,但例如,在应用程序脚本中,您可以执行以下操作:

function myFunction() {
  var id = "SPECIFY HERE THE ID OF THE PARENT FOLDER";
  iterate(id);

}

function iterate(id){
  var q = "'" + id + "' in parents"
  var files= Drive.Files.list({"q": q}).items;
  if (files.length>0){
    for ( var i = 0; i < files.length; i++){
      Logger.log(files[i].title);
      Logger.log(files[i].mimeType);
      if(files[i].mimeType=="application/vnd.google-apps.folder"){
        id = files[i].id;
        iterate(id);
      }
    }
  }
}
函数myFunction(){
var id=“在此处指定父文件夹的id”;
迭代(id);
}
函数迭代(id){
var q=“”“+id+””在父项中
var files=Drive.files.list({“q”:q}).items;
如果(文件长度>0){
对于(var i=0;i
如果您设法对
中的所有文件和文件夹发出查询,您不能以完全相同的方式对子文件夹发出新的查询吗?是的,我可以,从外观上看,我必须这样做。我只是觉得这个查询可以让我按照include子对象或者类似的方式来指定一些东西,这太完美了。这正是最终要做的。谢谢