Autor
|
Tema: Funcion para medir directorio completos (Lista para que la usen) (Leído 7,256 veces)
|
SERBice
|
Cuendo yo necesite que me pasaran algo asi nadie supo entender que necesitaba (o no quisieron ayudarme  ) en fin, aqui les dejo una funcion que hice para medir el tamaño de directorios completos (incluyendo subdirectorio) <?php /*############################################################################ # # #Nombre de la funcion: MeDir # # # #Autor: SERBice® # # # #Descripcion de la funcion: Recorre un directorio midiendo todos los # # archivos que contiene (incluso en sus # # subdirectorios, hasta el ultimo). # # # #Parametros de la funcion: El unico parametro de la funcion MeDir es $dir, # # Dicho parametro establece el directorio sobre el # # cual actuara la funcion, es decir, que establece # # el directorio del cual se obtendra informacion de # # su tamaño completo, incluyendo subdirectorios. # # Si $dir no se establece se utilizara el directorio# # donde se encuentra el archivo que llamo a la # # funcion # # # #Este Software se distribuye bajo Licencia GPL, por lo cual se solicita que # #se utilice con fines no lucrativos, es decir, que sea de uso Personal y No # #Comercial. Que se conserven los derechos de autor y que cualquier # #modificacion le sea notifiacda al autor, para saber y estar al tanto de # #los avances del software en cuestion; y de esta manera enriquezer aun mas # #esta pequeña herramienta # # # #Atentamente: SERBice® # # # ############################################################################*/ function MeDir($dir=".") { /* Creamos un array con todos los nombres de directorios y archivos contenidos dentro del directorio inicial */ $arr = scandir($dir);
/* establecemos que la variable $sizedir es igual a cero */ $sizedir = 0;
/* Recorremos el array saltando los directorios . y .. */ for ($i=2; $i<count($arr); $i++) { /* Si es un archivo hacer..... */ if (is_file($dir ."/". $arr[$i])) { /* Establecemos que la variable $sizedir es igual a ella misma más el tamaño del fichero $dir ."/". $arr[$i] */ $sizedir += filesize($dir ."/". $arr[$i]); } /* Si es un directorio hacer..... */ elseif (is_dir($dir ."/". $arr[$i])) { /* Establecemos que la variable $sizedir es igual a ella misma más el valor devuelto por MeDir */ $sizedir += MeDir($dir . "/" . $arr[$i]); } /* Si no sabemos que es reaccionamos como si fuera un archivo y ... */ else { /* Establecemos que la variable $sizedir es igual a ella misma más el tamaño del fichero $dir ."/". $arr[$i] */ $sizedir += filesize($dir ."/". $arr[$i]); } } /* Devolvemos el valor total de $sizedir */ return $sizedir; } ?>
|
|
« Última modificación: 2 Agosto 2012, 10:04 am por SERBice »
|
En línea
|
|
|
|
deya
Desconectado
Mensajes: 378
Muñeca Princesa Deya Bella
|
Excelente, muy útil  Buen aporte.  Algo así estaba necesitando en estos días.  Salu2
|
|
|
En línea
|
"No es mas pobre el que tiene poco, sino el que mucho ambiciona" Charles Chaplin. 
|
|
|
SERBice
|
Esta revision achica el codigo y añade la posibilidad de medir en subdirectorios o no segun se necesite <?php /*############################################################################ # # #Nombre de la funcion: MeDir # #Version de la funcion: 1.0.0.4 # #Fecha de la funcion (Creacion): 01/06/2006 # #Fecha de la funcion (ultima revision): 19/08/2006 # # # #Autor: SERBice(r) # # # #Descripcion de la funcion: Recorre un directorio midiendo todos los # # archivos que contiene (incluso en sus # # subdirectorios, hasta el ultimo). # # # #Parametros de la funcion: El parametro $dir, establece el directorio sobre el# # cual actuara la funcion, es decir, que establece # # el directorio del cual se obtendra informacion de # # su tamaño. # # Si $dir no se establece se utilizara el directorio# # donde se encuentra el archivo que llamo a la # # funcion # # $subdirs es el parametro que establece si vamos # # o no a medir en subdirectorios o no. Si $subdirs # # no se establece su valor por defaul sera 1 y # # medira los subdirectorios # # # #Este Software se distribuye bajo Licencia GPL, por lo cual se solicita que # #se utilice con fines no lucrativos, es decir, que sea de uso Personal y No # #Comercial. Que se conserven los derechos de autor y que cualquier # #modificacion le sea notifiacda al autor, para saber y estar al tanto de # #los avances del software en cuestion; y de esta manera enriquezer aun mas # #esta peque?a herramienta # # # #Atentamente: SERBice(r) # # # ############################################################################*/ function MeDir($dir=".",$subdirs=1) { /* Creamos un array con todos los nombres de directorios y archivos contenidos dentro del directorio inicial */ $arr = scandir($dir);
/* establecemos que la variable $sizedir es igual a cero */ $sizedir = 0;
/* Recorremos el array saltando los directorios . y .. */ for ($i=2; $i<count($arr); $i++) { /* Si es un directorio hacer..... */ if (is_dir($dir ."/". $arr[$i])) { /* Establecemos que la variable $sizedir es igual a ella misma m?s el valor devuelto por MeDir */ if ($subdirs==1) $sizedir += MeDir($dir . "/" . $arr[$i]); } /* Si es un archivo hacer ... */ else { /* Establecemos que la variable $sizedir es igual a ella misma m?s el tama?o del fichero $dir ."/". $arr[$i] */ $sizedir += filesize($dir ."/". $arr[$i]); } } /* Devolvemos el valor total de $sizedir */ return $sizedir; } ?>
|
|
« Última modificación: 2 Agosto 2012, 10:06 am por SERBice »
|
En línea
|
|
|
|
Neostream
Desconectado
Mensajes: 113
Neostream&ImagenCreativa
|
creo que se refiere a: que lo copiara y lo pegara  en pocas palabras que asi mismo lo usara  ey buenisimo gracias por el aporte
|
|
|
En línea
|
solo se q nada se 
|
|
|
SERBice
|
el codigo no lo copie de ningun lado, si como explique en el primer post de este tema yo necesitaba esta funcion y nadie supo comprender que necesitaba y decidi hacerlo yo. todo nacio aca, cuando pedi ayuda y no recibi mucha (solo un pokito, pero que en fin no use mucho). La URL del post que inicio todo: http://foro.elhacker.net/index.php/topic,114834.0.htmlla funcion es de mi autoria y pronto publicare otra nueva que espero que acepten con agrado. AÑADO: si el codigo lo han visto en otros foros lo he publicado yo (SERBice), y si esta publicado por otra persona en algun otro lado por favor notificarme si no ha respetado los creditos del autor. Gracias
|
|
« Última modificación: 21 Agosto 2006, 02:22 am por SERBice »
|
En línea
|
|
|
|
SERBice
|
Para quienes tengan PHP3/4 y no posean la funcion scandir() la cual es utilizada por MeDir pueden utilizar el siguiente codigo para crear la funcionscandir(). <?php Function scandir ($dir) { $dir = opendir($dir); $resultado=Array(); $i=-1; while ($file = readdir($dir)) { $i++; $resultado[$i]=$file; } closedir($dir); return $resultado; } ?> simplemente agrgando ese codigo antes del de la funcion MeDir todo les funcionara sobre rieles 
Revision .11 de la funcion MeDir. Detalles de la revision: Algunas veces en ciertos servidores los directorios no se listan del modo esperado (primero el directorio ".", despues ".." y despues el resto, sino que se listan de forma aleatoria y es por ello que la funcion en algunos servidores daba error porque estaba diseñada para saltar los 2 primeros directorios suponiendo qeu fueran "." y ".." cosa que no es constante en todos los servidores. Actualemnte el bucle de la funcion parte de 0 y no de 2 y con un if se comprueba que el nombre de archivo/directorio actual no sea "." ni "..". <?php /* <!-- /*############################################################################ # # #Nombre de la funcion: MeDir # #Version de la funcion: 1.0.0.11 # #Fecha de la funcion (Creacion): 01/06/2006 # #Fecha de la funcion (revision 1.0.0.4): 19/08/2006 # #Fecha de la funcion (ultima revision): 16/09/2006 # # # #Autor: SERBice(r) # # # #Descripcion de la funcion: Recorre un directorio midiendo todos los # # archivos que contiene (incluso en sus # # subdirectorios, hasta el ultimo). # # # #Parametros de la funcion: El parametro $dir, establece el directorio sobre el# # cual actuara la funcion, es decir, que establece # # el directorio del cual se obtendra informacion de # # su tamaño. # # Si $dir no se establece se utilizara el directorio# # donde se encuentra el archivo que llamo a la # # funcion # # $subdirs es el parametro que establece si vamos # # o no a medir en subdirectorios o no. Si $subdirs # # no se establece su valor por defaul sera 1 y # # medira los subdirectorios # # # #Este Software se distribuye bajo Licencia GPL, por lo cual se solicita que # #se utilice con fines no lucrativos, es decir, que sea de uso Personal y No # #Comercial. Que se conserven los derechos de autor y que cualquier # #modificacion le sea notifiacda al autor, para saber y estar al tanto de # #los avances del software en cuestion; y de esta manera enriquezer aun mas # #esta peque?a herramienta # # # #Atentamente: SERBice(r) # # # ############################################################################*/ function MeDir($dir=".",$subdirs=1) { /* Creamos un array con todos los nombres de directorios y archivos contenidos dentro del directorio inicial */ $arr = scandir($dir);
/* establecemos que la variable $sizedir es igual a cero */ $sizedir = 0;
/* YA NO Recorremos el array saltando los directorios . y .. */ for ($i=0; $i<count($arr); $i++) { /* Comprobamos que el archivo/directorio actual no sea "." ni ".." */ if ($arr[$i]!="." && $arr[$i]!="..") { /* Si es un directorio hacer..... */ if (is_dir($dir ."/". $arr[$i])) { /* Establecemos que la variable $sizedir es igual a ella misma m?s el valor devuelto por MeDir */ if ($subdirs==1) $sizedir += MeDir($dir . "/" . $arr[$i]); } /* Si es un archivo hacer ... */ else { /* Establecemos que la variable $sizedir es igual a ella misma m?s el tama?o del fichero $dir ."/". $arr[$i] */ $sizedir += filesize($dir ."/". $arr[$i]); } } } /* Devolvemos el valor total de $sizedir */ return $sizedir; } ?> Este mismo hilo lo encontras en http://www.zerohack.com.ar/foro/index.php/topic,173.msg254.html#msg254 con todas las revisiones y parches para esta funcion 
|
|
« Última modificación: 2 Agosto 2012, 10:06 am por SERBice »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Descarga Juegos Para Pc Completos
« 1 2 3 »
Juegos y Consolas
|
yalthon
|
20
|
48,349
|
27 Octubre 2005, 18:46 pm
por robzz
|
|
|
GPS mapas de Mexico completos para Palms y otros mas.
Dispositivos Móviles (PDA's, Smartphones, Tablets)
|
Martin-Ph03n1X
|
1
|
10,932
|
29 Septiembre 2010, 22:21 pm
por Jaime Mendez
|
|
|
se pueden bajar juegos para pc directoy y completos desde aqui
Juegos y Consolas
|
ravas
|
1
|
2,398
|
15 Julio 2010, 23:19 pm
por Ariath
|
|
|
How to: Wake On Lan Ayuda para revision
Foro Libre
|
peib0l
|
6
|
3,661
|
1 Noviembre 2010, 18:10 pm
por jbndg
|
|
|
El proyecto SamKnows nos necesita para medir con precisión el rendimiento de ...
Noticias
|
wolfbcn
|
0
|
1,779
|
14 Octubre 2013, 02:59 am
por wolfbcn
|
|