Esta es la tercera parte de listar archivos y carpetas y al igual que en otras ocasiones , ha sido a petición de un usuario en el foro de ayuda de Google Drive , donde suelo pasearme de vez en cuando para responder algunas solicitudes de ayuda. (si es que esta en mi nivel de conocimientos) 😁
la pegunta concreta es "como obtener el nombre del archivo o grupo de ellos mediante su url"
al principio pensé que seria fácil (como decimos en Mex. "pan comido" ) invocando o mandando llamar a un método getFileByURL o getFileByUrl, pero menuda sorpresa me encontré, que dicho método no existe(bueno solo en mi calenturienta cabeza) 🙄
como podrán observar en la búsqueda que realice
como tampoco lo encontré como getFileByUrl y después de revisar los métodos existentes en DriveApp, no tuve más remedio que revisar algo en la web y empezar a picar código
después de buscar encontré algunos enlaces interesantes , pero nada como realizar tus propias pruebas, sino ...¿¡¡como aprender!!?
el resultado fue algo como esto , después de varias rondas de prueba
a continuación , te muestro el primer ejemplo de código usado, es el más simple , pero cumple con la intención de darnos conocer el dato requerido, el cual puedes copiar y probar , lo encontraras unas cuantas líneas más abajo. 👇👇
Resumen:
paso 1.- se declaran 2 variables (hoja y urls) para acceder a la información de las urls de los archivos
paso 2.- se crea una matriz vacía(nombres = [ ]; para almacenar todos los resultados(nombres) esperados
paso 3.- creamos un bucle for para recorrer todas las url de la HCG(hoja de calculo)
paso 4.- creamos una variable "id" para recuperar el ID del archivo usando la función match de javascript
paso 5.-llenamos la matriz vacía con cada nombre de los archivos , obtenidos mediante el método getFileById de Driveapp
paso 6.- vaciamos o establecemos los resultados en la columna B, a partir de la fila 2 8deje comentada una notación de tipo "A1" , para que se pueda elegir entre ambas
paso 7.- ejecutamos código y autorizamos los permisos correspondientes para ello (ver nota al final)
Puedes mirar le video y pausarlo las veces que necesites y/o acceder al código en los siguientes aparatados:
si el tema fue de utilidad, regálame 👍 una manita arriba en el canal de YouTube y suscríbete 😉 !!:
function obtenerNombres() {
var hoja = SpreadsheetApp.getActive().getActiveSheet();
var urls = hoja.getRange("A2:A13").getValues();
var nombres =[];
for(var i=0;i<urls.length;i++){
var id = urls[i].toString().match(/[-\w]{25,}/);
nombres.push([DriveApp.getFileById(id).getName()]);
}
hoja.getRange(2, 2, nombres.length, 1).setValues(nombres);
}
nota:
si no sabes como copiar el código en el editor de secuencia de comandos, solo ve al menú herramientas / editor de secuencia de comandos y copia-pega el código o mira este vídeo de apoyo
Síguenos y suscríbete en: