Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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
Google apps script 错误:无法检索下一个对象:迭代器已到达末尾。createFolder@Function:createFolder.gs:8_Google Apps Script - Fatal编程技术网

Google apps script 错误:无法检索下一个对象:迭代器已到达末尾。createFolder@Function:createFolder.gs:8

Google apps script 错误:无法检索下一个对象:迭代器已到达末尾。createFolder@Function:createFolder.gs:8,google-apps-script,Google Apps Script,我使用了在SO上看到的一个代码,将文档保存到Google Drive中的特定文件夹中,但按日期(yyy-MM-DD)。我已经运行了这个脚本,但我一直收到上面的消息。我试着查看代码,但看不出哪里出了问题-有人能帮我吗?非常感谢你 function createFolder(){ var formattedDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd"); var folderYe

我使用了在SO上看到的一个代码,将文档保存到Google Drive中的特定文件夹中,但按日期(yyy-MM-DD)。我已经运行了这个脚本,但我一直收到上面的消息。我试着查看代码,但看不出哪里出了问题-有人能帮我吗?非常感谢你

function createFolder(){
  var formattedDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd");
  var folderYearDate = Utilities.formatDate(new Date(), "GMT", "yyyy");
  var folderMonthDate = Utilities.formatDate(new Date(), "GMT", "MMMM");
  var name = "XXXX" + formattedDate; //file name
  var parent = DriveApp.getFolderById("XXXX").getFoldersByName("XXXX")
  var yearExist = parent.next();
  var yearFolders = yearExist.getFoldersByName(folderYearDate);
  if(yearFolders.hasNext()){
    var yearFolder = yearFolders.next()
    Logger.log('Yes, there is a year folder')
    //return;
  } else {
    var yearFolder = yearExist.createFolder(folderYearDate)

    Logger.log('There was no year folder, but it was created.')
    //return;
  }

  var monthFolders = yearFolder.getFoldersByName(folderMonthDate);
  if(monthFolders.hasNext()){
    var monthFolder = monthFolders.next()
    Logger.log('Yes, there is a month folder.')

  } else {
    var monthFolder = yearFolder.createFolder(folderMonthDate);
    Logger.log('There was no month folder, but it was created')
  }
}

它失败是因为调用DriveApp.getFolderById(“XXXX”).getFoldersByName(“XXXX”)找不到任何文件夹。您应该始终在
.next()
之前调用
.hasNext()
,查看是否存在任何问题(就像您在代码后面所做的那样)


它失败是因为调用DriveApp.getFolderById(“XXXX”).getFoldersByName(“XXXX”)找不到任何文件夹。您应该始终在
.next()
之前调用
.hasNext()
,查看是否存在任何问题(就像您在代码后面所做的那样)

根据定义

next()
-获取文件或文件夹集合中的下一项。如果没有剩余项,则引发异常

要避免异常,必须使用
hasNext
()确定调用next()是否将返回项

在代码中:

if(parent.hasNext()){
  var yearExist = parent.next();
  //some operations
}
工具书类

根据定义

next()
-获取文件或文件夹集合中的下一项。如果没有剩余项,则引发异常

要避免异常,必须使用
hasNext
()确定调用next()是否将返回项

在代码中:

if(parent.hasNext()){
  var yearExist = parent.next();
  //some operations
}
工具书类


谢谢你们两位。我现在已经编辑了代码。我得到一个单独的错误,我打算发布另一个问题,因为它与这个问题无关。谢谢你们。我现在已经编辑了代码。我得到一个单独的错误,我打算发布另一个问题,因为它与这个问题无关。