Encontré un código aquí que casi hace lo que necesito, pero estoy tratando de romper la función recursiva cuando localizo la carpeta en cuestión. Actualmente, mi console.log devuelve "indefinido".
Esto es probablemente algo fácil; Simplemente no puedo verlo.
Aquí está mi código (en su mayoría robado):
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); } }Gracias a quien se sienta lo suficientemente generoso como para salvar a este padre cansado de sí mismo.
Compruebe si se ha devuelto una respuesta:
while (subfolders.hasNext()) { var tempRes = listFolders(subfolders.next(), destFolder); // if it returned a value, return the value if(tempRes) return tempRes; }test9 :