Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

146
Vistas
Cómo cambiar el nombre de la nueva carpeta de creación con las subcarpetas

Quiero crear una nueva carpeta con un nuevo nombre desde la celda en la hoja, y quiero copiar en esta carpeta los archivos y carpetas con el destino de origen.

Me podrian ayudar a solucionar mi problema.

¿Es posible cambiar el nombre de nueva carpeta sin cambiar el nombre de las carpetas y subcarpetas, después de su creación?

 function copyFolderass() { const sourceFolder = DriveApp.getFolderById(''); const destinyFolder = DriveApp.getFolderById(''); copyFolder(sourceFolder, destinyFolder); } function copyFolderContents(source, target) { const filesIterator = source.getFiles(); while (filesIterator.hasNext()) { const file = filesIterator.next(); file.makeCopy(file.getName(), target); } } function copyFolder(sourceFolder, destinyFolder) { var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("nameFile"); var name = ss.getRange("F4").getValue(); const newFolder = destinyFolder.createFolder(sourceFolder.getName()); copyFolderContents(sourceFolder, newFolder); const foldersIterator = sourceFolder.getFolders(); while (foldersIterator.hasNext()) { const folder = foldersIterator.next(); copyFolder(folder, newFolder); } }
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Crear carpetas y copiar archivos

Lee una hoja para obtener FilesFolder Id FolderFolder Id y nuevo FolderName

Crea la nueva carpeta y copia todos los archivos de la Carpeta de archivos a la carpeta recién creada.

Registra la nueva identificación de la carpeta en la columna FolderId.

Registra todos los identificadores de archivo en la columna FileIds.

Puso la fecha en la columna creada.

No hace nada por las filas que tienen contenido en Creado

 //FilesFolder FolderFolder FolderName FolderId FileIds Created function createFolderAndCopyFiles() { const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName("Sheet0"); const shsr = 2; let [hA, ...vs] = sh.getDataRange().getValues(); let idx = {}; let col = {}; hA.forEach((h, i) => { idx[h] = i; col[h] = i + 1; }); vs.forEach((r, i) => { if (!r[idx["Created"]]) { let dfldr = DriveApp.getFolderById(r[idx["FolderFolder"]]); let fldr = dfldr.createFolder(r[idx["FolderName"]]); let fldrid = fldr.getId(); sh.getRange(i + shsr, col["FolderId"]).setValue(fldrid); let files = DriveApp.getFolderById(r[idx["FilesFolder"]]).getFiles(); let ids = []; while (files.hasNext()) { let file = files.next(); let fid = file.getId(); file.makeCopy(file.getName(), fldr); ids.push(fid); } sh.getRange(i + shsr, col["FileIds"]).setValue(ids.join('\n')); sh.getRange(i + shsr, col["Created"]).setValue(new Date()); } }); }

Hoja de cálculo

ingrese la descripción de la imagen aquí

Usted completa las cosas en amarillo, el programa completa el resto y no volverá a crear carpetas si la Columna creada no está vacía.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Gracias Cooper por la respuesta, pero esto no es lo que quiero hacer.

  1. en google drive tengo una plantilla de estructura de catálogos.
  2. mi código es uno de los códigos parciales de mi código principal. el código principal funciona así
  • hago clic en enviar correo electrónico y luego ejecuto mi código con la creación de una carpeta desde temtlace
  1. cuando está creando un nombre de carpeta de plantilla, pero solo quiero cambiar una parte de esta línea de mi código. en lugar de esta línea

    const carpetanueva = carpetadestino.createFolder(carpetaorigen.getName());

Solo quiero que me guste esto: el nombre de la carpeta de creación es de la celda F4. los nombres restantes de las carpetas pueden permanecer como en la plantilla.

 var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("nameFile"); var name = ss.getRange("F4").getValue(); const newFolder = destinyFolder.createFolder(sourceFolder.setName(name));

pero esta línea cambia el nombre de ale en las subcarpetas i todo el catálogo de estructura cuando se está creando.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda