tamaño ficheros directorio


([N3] GSI) #1

Hola a todos, necesito saber por instancia, en la carpeta de datos, el tamaño de los mismos, es decir, los ficheros de una instancia determinada que tamaño tienen.

Había pensado lanzar algún proceso en 3P que generara un fichero txt con todos los ficheros e ir procesando uno a uno y con la función get atributos… obtener el tamaño y sumarlo, pero creo que tiene que haber un sistema mas fácil para saber el tamaño de los ficheros de una carpeta.

¿ alguien lo ha hecho ?


([N1] wikan) #2

No creo que te haga falta el fichero txt.

  • Recorrer directorio de manera recursiva
  • Obtienes el tamaño de los fichero
  • Acumulas en una variable local.

Depende el sistema operativo también puedes usar la línea de comandos.
Linux tienes du
Windows no la trae por defecto pero lo puedes instalar https://technet.microsoft.com/es-mx/sysinternals/bb896651.aspx


([N1] Mario) #3

Esto te servirá ejecutado en tercer plano indicando la ruta

// Para poder usar la clase VDir y sus funciones hay que importarla primero
importClass( "VDir" );

// Lo primero que hay que hacer es crear un objeto VDir con un directorio o vacío
var dir = new VDir();

var ruta = theRoot.varToString("PATH");

// En caso de crear el objeto VDir sin un directorio es necesario asignar un path
dir.cd( ruta );

// Convertir el path del direcotorio en path absoluto
dir.makeAbsolute();

dir.load();

// Recorrer el directorio
var filesNumber =0;
var totalSize = 0;
var filesList = "";
for ( i=0; i<dir.count(); i++ )
{
	file = dir.entryAt( i );
	if ( file.isFile() ) {
		filesNumber++;
		totalSize += file.size();
		filesList += dir.entryAt( i ).filePath(file.path() ) + "\n";
	}
}
theRoot.setVar( "ESP_DIS", totalSize.toString()  );

Saludos


([N3] pacosatu) #4

Hola GSI.

Tú mismo has dicho la forma de hacerlo y esa es la forma más sencilla, de forma nativa con Velneo.

  • Cambiar directorio por defecto (carpeta de la instancia de datos)
  • Recorrer directorio -> crea un subproceso por cada fichero
  • Get atributos fichero -> acumulamos el tamaño

Más sencillo imposible.

Saludos
Paco Satué


([N3] GSI) #5

Gracias por la rapidez y la ayuda. Saludos


([N3] GSI) #6

Mario, gracias, acabo de probar el scrip y funciona perfectamente, pero apurando un poco mas, hay alguna forma que sume los posibles directorios contenidos en la carpeta indicada??