子文件夹搜索和停止(Google Apps 脚本/Javascript)

Subfolder Search and Stop (Google Apps Script / Javascript)

我发现了一些代码 here 几乎可以满足我的需要,但是当我找到有问题的文件夹时,我试图破坏递归函数。目前,我的 console.log returns“未定义”。

这可能很简单;就是看不出来。

这是我的(大部分是被盗的)代码:

  function moveFile(e) {
  var FileNo = e.parameters.FileNo;
  var destFolder = e.formInput.input_field;

  // Get the Folder
  var Folders = DriveApp.searchFolders("title contains '"+FileNo+"' and trashed = false and hidden = false");
  var Folder = Folders.next().getId();

  var url = start(Folder, destFolder);

  console.log(url);
  
}

function start(FolderID, destFolder) {
 folder = DriveApp.getFolderById(FolderID);
 var response = listFolders(folder, destFolder);
 //console.log(response);
 return response;
}

function listFolders(folder, destFolder) {
  //starting point, we come here from start() or from the bottom of this function
  var destFolder = destFolder;
  //check the name
  var name = folder.getName();

  if (name.match(destFolder)) {
    //console.log(folder.getUrl());
    var response = folder.getUrl();
    return response; 
  }

  //now see if this folder has subfolders
  var subfolders = folder.getFolders();

  //if it has, we call this function again
  while (subfolders.hasNext()) {    
    listFolders(subfolders.next(), destFolder);
  }
  
}

感谢任何慷慨解囊的人parent。

检查是否已返回响应:

while (subfolders.hasNext()) {    
  var tempRes = listFolders(subfolders.next(), destFolder);
  // if it returned a value, return the value
  if(tempRes)
    return tempRes;
}

正在搜索 test9 文件夹:

  • 原始脚本输出:

  • 应用更改: