• Domingo 22 de Diciembre de 2024, 18:15

Autor Tema:  Tamaño De Una Carpeta Y Sus Hijas  (Leído 1748 veces)

shine

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Tamaño De Una Carpeta Y Sus Hijas
« en: Sábado 9 de Septiembre de 2006, 12:15 »
0
Hola a todos.

Estoy haciendo una palicación y necesito conocer el tamaño y el num. de archivos que tiene una carpeta.

Esto parece facil, el problema que me encuentro es que DirectoryInfo solo da la lista de archivos y de directorios hijos.

Así que solo se me ocurre usar recursividad para conoer el tamaño total de la carpeta.

No conozco bien la recursividad, y no se bien como se puede hacer.

¿ alguna idea ? Gracias

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Tamaño De Una Carpeta Y Sus Hijas
« Respuesta #1 en: Sábado 9 de Septiembre de 2006, 17:01 »
0
haste una funcion que halle el tamaño de una carpeta que le hayas pasado como parametro , luego hayas el tamaño de sumar los archivos dentro de una carpeta y luego colocas los nombres de los directorios en un array.

Cuando ya haya sumado los tam de los archivos entonces llamas otra vez tu pripia funcion ( desde si misma) , es decir recorrees el array con los nombres de las carpetass y por cada iteracion llamas tu propia funcion pasandole el nomnbre dla carptea...

ejemplo:

Código: Text
  1. public long function obtenerTamano( string nombrecarpeta)
  2. {
  3.   archivos= carpeta.obtenerarchivos();
  4.   foreach (archivo a in archivos)
  5.   {
  6.      tamArchivos+= a;
  7.   }
  8.  
  9.   foreach( carpeta a in carpetas)
  10.   {
  11.       tamanoCarpetas+= obtenerTamano(a.nombre);
  12.   }
  13.   return tamanoCarpetas  + tamArchivos;
  14. }
  15.  
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

shine

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Tamaño De Una Carpeta Y Sus Hijas
« Respuesta #2 en: Sábado 9 de Septiembre de 2006, 23:07 »
0
Gracias, va de lujo.

Tengo otro problema: En un textBox escribo el nombre de la carpeta, con *una* contrabarra de directorio "\" y al guardarla en un campo de base de datos se elimina.
Para que se guarde tengo que escribirla dos veces.

¿ como puedo resolverlo para no tener que escribir dos veces la contrabarra ?

Gracias de nuevo.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Tamaño De Una Carpeta Y Sus Hijas
« Respuesta #3 en: Sábado 9 de Septiembre de 2006, 23:12 »
0
@"\hola\"
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

shine

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Tamaño De Una Carpeta Y Sus Hijas
« Respuesta #4 en: Sábado 9 de Septiembre de 2006, 23:19 »
0
no me funciona mira como lo he aplicado:

Código: Text
  1. string s="Insert into carpetas (carpeta,notificacion,max_tamano,max_archivo) values (";
  2.      
  3.       s +="'"+@carpeta.Text+"',";
  4.       s +="'"+notificacion.Text+"',";
  5.       s +="'"+max_tamano.Text+"',";
  6.       s +="'"+max_archivo.Text+"')";
  7.  

tiene el operador, pero sigue haciendo igual que antes.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Tamaño De Una Carpeta Y Sus Hijas
« Respuesta #5 en: Domingo 10 de Septiembre de 2006, 00:42 »
0
lo que pasa es que usandolo asi no necesitas el operador, de hecho creo que no necesitas nada.

Código: Text
  1. s =@"C:\Windows\System32\algo.txt";
  2. ...
  3. s ="C:\\Windows\\System32\\algo.txt";
  4. ...
  5. txtBox.Text= @"C:\Windows\System32\algo.txt";
  6. s=txtBox.Text&#59;
  7. ...
  8. txtBox.Text= "C:\\Windows\\System32\\algo.txt";
  9. s=txtBox.Text&#59;
  10.  
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

shine

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Tamaño De Una Carpeta Y Sus Hijas
« Respuesta #6 en: Domingo 10 de Septiembre de 2006, 13:08 »
0
Pues tienes razón.

He puesto un MessageBox y la contrabarra está. Pero al pasar el string a una clase que he creado para guardarla en una tabla en MySql, se pierde.

Quizá debería usar StringBuilder ? o será cosa de MySql  y los ISO ?

gracias.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Tamaño De Una Carpeta Y Sus Hijas
« Respuesta #7 en: Domingo 10 de Septiembre de 2006, 15:53 »
0
para mi que es cosa de  mysql.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io