Cómo saber el tamaño de una carpeta en Google Drive

Si estas aquí, quizás te has preguntado: ¿Cómo puedo ver el peso de una carpeta de Google Drive?, sobre todo ¿Cómo es posible que no haya una función integrada para esto?.

Soluciones para ver el tamaño de carpeta en Google Drive

Solución 1: Script para poner el tamaño en la Descripción de la carpeta

Luego de mucho buscar y explorar, he decidido crear esta publicación con la mejor solución que pude encontrar.

Hago uso de AppScript de Google, creando un archivo en la raiz de mi Google Drive.

El código lo he mejorado (recursividad, correcciones, etc) a partir del compartido por Fredy H en esta publicación.

El problema que tiene es que si tienes muchas carpetas y muchos archivos con mucho peso, se excede el tiempo de ejecución, así que el ID de la carpeta que asigno ha tenido que ser en subcarpetas, pero aún así, ha sido la solución que mejor resolvía mi necesidad.

Debes:

1. Poner este código en un archivo de AppScript, indicando el ID de la carpeta de la que quieres conocer el tamaño (también lo pondrá en sus subcarpetas):

function determinarTamanioFolder() {
  var folder = DriveApp.getFolderById('XXX'); /* Reemplaza XXX con tu ID de carpeta */
  processFolder(folder);
}

function processFolder(folder) {
  var sizeInfo = calculateFolderSize(folder);
  var kb = (sizeInfo.size / 1024).toFixed() + " KB";
  var mb = (sizeInfo.size / (1024 * 1024)).toFixed(2) + " MB";
  var gb = (sizeInfo.size / (1024 * 1024 * 1024)).toFixed(2) + " GB"; // Conversión a GB
  var description = sizeInfo.count + " Archivos.\nTamaño/Peso:\n" + kb + "\n" + mb + "\n" + gb;
  folder.setDescription(description);

  var subfolders = folder.getFolders();
  while (subfolders.hasNext()) {
    var subfolder = subfolders.next();
    processFolder(subfolder);
  }
}

function calculateFolderSize(folder) {
  var contents = folder.getFiles();
  var cnt = 0;
  var size = 0;

  while (contents.hasNext()) {
    var file = contents.next();
    if (file.getSize() > 0) {
      cnt++;
      size += file.getSize();
    }
  }

  var subfolders = folder.getFolders();
  while (subfolders.hasNext()) {
    var subfolder = subfolders.next();
    var subfolderInfo = calculateFolderSize(subfolder);
    cnt += subfolderInfo.count;
    size += subfolderInfo.size;
  }

  return { count: cnt, size: size };
}

2. Darle permisos de ejecución en tu Google Drive (te lo pedirá al ejecutar).

3. Ejecutar. El tamaño lo verás en la descripción de la carpeta (i).

Puedes ajustar la forma en la que se muestra la descripción, e incluso el código, a tu gusto.

Solución 2: Ver el tamaño en tu local

Esta solución la puedo explicar en MacOS, ya que es el equipo del que dispongo.

En las opciones de configuración de la Aplicación de Google Drive (que debes instalar), debes hacer una copia local seleccionando la opción «Mirror Files». Debes tener espacio en tu computador para las copias locales, ya que lo que terminaras haciendo es viendo el tamaño de la carpeta con Finder, la aplicación de carpetas nativa de MacOS.

En mi caso esta solución no me sirvió porque quería tener almacenamiento en la nube sin usar mi almacenamiento local, sobre todo porque mi almacenamiento local no tiene esa capacidad. En este caso, yo uso Stream Files, que usa almacenamiento local solo de forma temporal.

Nota importante: Si usas la función «Stream files» para ‘no usar tu espacio local’, verás que se llena igualmente tu disco duro. Este uso es para facilitar el acceso rápido a los archivos que vas usando, pero seguirás disponiendo de este espacio de almacenamiento en tu disco. Verás que el espacio lleno aparece como información de sistema. Esto puede ser confuso, y me generó muchas dudas, pero a medida que usas más espacio, va liberando el espacio espacio de Google Drive para permitirlo.

Solución 3: Pedir ayuda en el soporte de Google

Lamento decirlo, como cliente de Google One, que el soporte no es para nada efectivo. Sabía más yo que la persona que me atendió (lo cual no considero que sea su problema, es problema de Google en su preparación del personal de soporte). Intentó ser amable, pero su falta de dominio del problema y el pretender saber como resolverlo sin saberlo, solo me resultó en una perdida de tiempo.

Espero que estas soluciones te sirvan. Por favor, si tienes dudas, dejalas en los comentarios e intentaré ayudarte. Con este post espero «capitalizar» todo la investigación y dificultades, al menos, ayudando a otras personas. Si te sirvió, agradezco tus comentarios para saber que está siendo útil.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *