Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用驱动器api搜索文件夹中的文件_Javascript_Google Apps Script_Google Drive Api - Fatal编程技术网

Javascript 使用驱动器api搜索文件夹中的文件

Javascript 使用驱动器api搜索文件夹中的文件,javascript,google-apps-script,google-drive-api,Javascript,Google Apps Script,Google Drive Api,驱动器api: 我试图获取我拥有的电子表格的id,但是Logger.log()返回多个id,而不仅仅是一个id。我想它是从谷歌硬盘最近的部分得到了同名文件 我不知道如何解决这个问题,任何帮助都将不胜感激 有没有办法只使用驱动器api搜索文件夹内的文件?或者,如何排除“最近”部分中的文件,而只搜索驱动器中的文件 代码片段: //get spreadsheet var nameId; var allFiles = Drive.Files.list({ q: "title='"

驱动器api:

我试图获取我拥有的电子表格的id,但是Logger.log()返回多个id,而不仅仅是一个id。我想它是从谷歌硬盘最近的部分得到了同名文件

我不知道如何解决这个问题,任何帮助都将不胜感激

有没有办法只使用驱动器api搜索文件夹内的文件?或者,如何排除“最近”部分中的文件,而只搜索驱动器中的文件

代码片段:

  //get spreadsheet
  var nameId;

  var allFiles = Drive.Files.list({
    q: "title='" + name + "' and trashed=false"
  }).items;

  for (var i = 0; i < allFiles.length; i++)
  {
    if (allFiles[i].title == name)
    {
      Logger.log("true");
      nameId = allFiles[i].id;
      Logger.log("returnTemplatedTable -- name id: " + nameId);
    }
    else
    {
      Logger.log("false");
    }
  }

  var spreadsheet = SpreadsheetApp.openById(nameId).getActiveSheet();
但是我怎么能搜索文件夹呢


var list=Drive.Files.list({
“folderId”:folderId,
问:“title=”“+name+”,trashed=false”
}).项目;
对于(变量i=0;i
这使用驱动器api查找文件夹中所有文件的名称

 function findFilesInFolder() {
    var folderId = 'folderId'
    //searches for children of a folder
    var childrenData = Drive.Children.list(folderId)
    var children = childrenData.items;

    //loops through the children and gets the name of each one
    for (var i = 0; i < children.length; i++){
      var id = children[i].id;
      var file = Drive.Files.get(id);
      Logger.log(file.title)
    }
  }
函数findFileInfolder(){
var folderId='folderId'
//搜索文件夹的子级
var childrenData=Drive.Children.list(folderId)
var childrenData=childrenData.items;
//循环遍历子项并获取每个子项的名称
对于(变量i=0;i
这使用驱动器api查找文件夹中所有文件的名称

 function findFilesInFolder() {
    var folderId = 'folderId'
    //searches for children of a folder
    var childrenData = Drive.Children.list(folderId)
    var children = childrenData.items;

    //loops through the children and gets the name of each one
    for (var i = 0; i < children.length; i++){
      var id = children[i].id;
      var file = Drive.Files.get(id);
      Logger.log(file.title)
    }
  }
函数findFileInfolder(){
var folderId='folderId'
//搜索文件夹的子级
var childrenData=Drive.Children.list(folderId)
var childrenData=childrenData.items;
//循环遍历子项并获取每个子项的名称
对于(变量i=0;i
这里有一个更简单的方法,使用

获取用户驱动器中与 给定搜索条件。搜索条件在谷歌上有详细说明 驱动SDK文档。请注意,params参数是一个查询 可能包含字符串值的字符串,因此请注意转义 引号正确(例如“标题包含‘格列佛’” “游记”或“标题包含“格列佛游记”)

以下是我尝试过的一个片段:

function searchForeFile(){

    var files = DriveApp.searchFiles(
      'modifiedDate > "2013-02-28" and title contains "Gene Simmons"');
     while (files.hasNext()) {
    var file = files.next();
     Logger.log(file.getName());
  }
}
果然它返回了我要找的文件:

[17-04-0321:43:26:736 PDT]Gene Simmons KISS.pdf


这里有一个更简单的方法,使用

获取用户驱动器中与 给定搜索条件。搜索条件在谷歌上有详细说明 驱动SDK文档。请注意,params参数是一个查询 可能包含字符串值的字符串,因此请注意转义 引号正确(例如“标题包含‘格列佛’” “游记”或“标题包含“格列佛游记”)

以下是我尝试过的一个片段:

function searchForeFile(){

    var files = DriveApp.searchFiles(
      'modifiedDate > "2013-02-28" and title contains "Gene Simmons"');
     while (files.hasNext()) {
    var file = files.next();
     Logger.log(file.getName());
  }
}
果然它返回了我要找的文件:

[17-04-0321:43:26:736 PDT]Gene Simmons KISS.pdf


您是否尝试过:与此结合:您是否尝试过:与此结合:谢谢,但我希望使用advanced drive service drive api v2执行此操作。查看文档,json负载中的文件似乎有父属性。你试过把它和文件夹id进行比较吗?是的,我用我刚刚试过的另一段代码编辑了这篇文章。它仍然返回多个id。我发布了一个经过编辑的答案。这使用
Drive.Children.list
来搜索文件夹的所有子文件夹。谢谢,但我希望使用高级驱动器服务驱动器api v2来执行此操作。查看文档,json负载中的文件似乎有父属性。你试过把它和文件夹id进行比较吗?是的,我用我刚刚试过的另一段代码编辑了这篇文章。它仍然返回多个id。我发布了一个经过编辑的答案。这将使用
Drive.Children.list
搜索文件夹的所有子级。