Estoy haciendo una aplicación de secuencia de comandos de aplicaciones que almacenará algunos datos dentro de las carpetas que pretendo crear según la fecha actual, es decir, la secuencia de comandos buscará si dentro de una carpeta principal con una identificación conocida hay una carpeta con el nombre del año actual, si no hay luego creará la carpeta, luego verificará qué mes es y creará la carpeta del mes dentro de la carpeta del año, por último creará una carpeta personalizada con datos personalizados dentro de la carpeta del mes. El problema es que solo pude crear la carpeta del año con el siguiente código:
function createFolder(date){ var year = date.substring(6,10); var month = meses[date.substring(3,5)]; var yearFolder var parentFolder = DriveApp.getFolderById(parentFolderId); // Gets FolderIterator for yearFolder yearFolders = parentFolder.getFoldersByName(year); /* Checks if FolderIterator has Folders with given name Assuming there's only a yearFolder with given name... */ while (yearFolders.hasNext()) { yearFolder = yearFolders.next(); } if (!yearFolder) {parentFolder.createFolder(year); } }Quiero usar el mismo código para crear el mes y las carpetas personalizadas, pero el problema es que no puedo recuperar la identificación de la carpeta del año creada y luego la del mes. ¿Cómo puedo hacerlo?
Si mi entendimiento con su objetivo es correcto, no necesita obtener la identificación de la carpeta, solo use el yearFolder recién creado. Solo asegúrese de asignarlo a la variable yearFolder para almacenar ese objeto de carpeta si no existe.
A menos que su objetivo sea almacenar esos ID, este enfoque también debería funcionar.
yearFolders = parentFolder.getFoldersByName(year); while (yearFolders.hasNext()) yearFolder = yearFolders.next(); if (!yearFolder) // Store returned folder object into yearFolder if it doesn't exist // Then use it for the month counterpart yearFolder = parentFolder.createFolder(year); // Repeat above code but now uses yearFolder as parentFolder monthFolders = yearFolder.getFoldersByName(month); while (monthFolders.hasNext()) monthFolder = monthFolders.next(); if (!monthFolder) monthFolder = yearFolder.createFolder(month); // Then create custom folder in monthFolder, then following the file customFolder = monthFolder.createFolder('customFolder'); customFolder.createFile('customData', customData)Para obtener la identificación de la carpeta "año", reemplace
if (!yearFolder) {parentFolder.createFolder(year); }por
if (!yearFolder) { yearFolder = parentFolder.createFolder(year); } const yearFolderId = yearFolder.getId();