Advertisement
Guest User

Automatizador de listado de Archivos 1.2 by sectemple.blogspot.com

a guest
Oct 16th, 2022
829
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Automatizador de listado de archivos en Google drive
  2.  
  3. // Traido para ustedes por el blog: sectemple.blogspot.com - Tu fuente de noticias y tips de   // hacking y seguridad informática.
  4. // post: //https://sectemple.blogspot.com/2022/10/automatiza-listados-de-archivos-en-google-drive-con-//carpetas.html
  5. // Autor original: ourtechroom.com/fix/list-all-googledrive-links-files-folder-to-googlesheet/
  6.  
  7. // Instrucciones:
  8. // crea una nueva hoja de google spreadsheets
  9. // ve a tools -> Script editor
  10. // copia y pega el código de abajo . Salva en el icono de salvar.
  11. // refresca la hoja de cálculo. Deberías ver un botón nuevo que dice list files/folders
  12. // te pedira el id de la carpeta. Copia y pegala
  13. // Dale a ok. Y mira como se hace automaticamente
  14.  
  15. // desde aquí comienza el codigo
  16. //Instrucciones:
  17.  
  18. function onOpen() {
  19.   var SS = SpreadsheetApp.getActiveSpreadsheet();
  20.   var ui = SpreadsheetApp.getUi();
  21.   ui.createMenu('List Files/Folders')
  22.     .addItem('List All Files and Folders', 'listFilesAndFolders')
  23.     .addToUi();
  24. };
  25.  
  26. function listFilesAndFolders(){
  27.   var folderId = Browser.inputBox('Enter folder ID', Browser.Buttons.OK_CANCEL);
  28.   if (folderId === "") {
  29.     Browser.msgBox('Folder ID is invalid');
  30.     return;
  31.   }
  32.   getFolderTree(folderId, true);
  33. };
  34.  
  35. // Get Folder Tree
  36. function getFolderTree(folderId, listAll) {
  37.   try {
  38.     // Get folder by id
  39.     var parentFolder = DriveApp.getFolderById(folderId);
  40.    
  41.     // Initialise the sheet
  42.     var file, data, sheet = SpreadsheetApp.getActiveSheet();
  43.     sheet.clear();
  44.     sheet.appendRow(["Full Path", "Name","Type" ,"Date", "URL", "Last Updated", "Description", "Size","Owner Email"]);
  45.    
  46.     // Get files and folders
  47.     getChildFolders(parentFolder.getName(), parentFolder, data, sheet, listAll);
  48.   } catch (e) {
  49.     Logger.log(e.toString());
  50.   }
  51. };
  52.  
  53. // Get the list of files and folders and their metadata in recursive mode
  54. function getChildFolders(parentName, parent, data, sheet, listAll) {
  55.   var childFolders = parent.getFolders();
  56.  
  57.   // List folders inside the folder
  58.   while (childFolders.hasNext()) {
  59.     var childFolder = childFolders.next();
  60.     var folderId = childFolder.getId();
  61.     data = [
  62.       parentName + "/" + childFolder.getName(),
  63.       childFolder.getName(),
  64.       "Folder",
  65.       childFolder.getDateCreated(),
  66.       childFolder.getUrl(),
  67.       childFolder.getLastUpdated(),
  68.       childFolder.getDescription(),
  69.       childFolder.getSize()/1024,
  70.       childFolder.getOwner().getEmail()
  71.     ];
  72.     // Write
  73.     sheet.appendRow(data);
  74.    
  75.     // List files inside the folder
  76.     var files = childFolder.getFiles();
  77.     while (listAll & files.hasNext()) {
  78.       var childFile = files.next();
  79.       data = [
  80.         parentName + "/" + childFolder.getName() + "/" + childFile.getName(),
  81.         childFile.getName(),
  82.         "Files",
  83.         childFile.getDateCreated(),
  84.         childFile.getUrl(),
  85.         childFile.getLastUpdated(),
  86.         childFile.getDescription(),
  87.         childFile.getSize()/1024,
  88.         childFile.getOwner().getEmail(),
  89.       ];
  90.       // Write
  91.       sheet.appendRow(data);
  92.     }
  93.     // Recursive call of the subfolder
  94.     getChildFolders(parentName + "/" + childFolder.getName(), childFolder, data, sheet, listAll);  
  95.   }
  96. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement