Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

144
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!