Ir al contenido



Foto

Carpetas y carpetas especiales en C#


  • Por favor identifícate para responder
4 respuestas en este tema

#1 reevil

reevil

    Member

  • Miembros
  • PipPip
  • 32 mensajes
  • LocationMéxico

Escrito 28 diciembre 2009 - 04:56

Hola, estoy empezando con mi primer programa en c#. y estoy batallando con las carpetas y carpetas especiales.
Para no aburrirlos mucho con detalles del programa creo que puedo resumirlo en que necesito hacer una lista de archivos que estan en carpetas dentro de Mis documentos:

Mis documentos\Facturación\
01-02-05\
03-04-05\
05-06-05\
...
...
01-02-09\
Esas carpetas se crean automaticamente cada bimestre y dentro de ellas se guardan archivos xml y xls que son los que quiero listar.


utilizo eso para obtener la ruta de Mis documentos


csharp
  1. string ruta;
  2. ruta = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
  3. string[] files = Directory.GetFiles(ruta);
  4. listBox1.Items.AddRange(files);



Hasta ahi todo bien, pero no me basta con llegar a Mis documentos, lo que busco es poder llegar a :
Mis Documentos\Resolución\
para luego llegar a las subcarpetas bimestrales.
aqui el primer problema, pues al hacer algo como:


csharp
  1. string ruta;
  2. ruta = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\\Resolución\\";
  3. string[] files = Directory.GetFiles(ruta);
  4. listBox1.Items.AddRange(files);


no llega a ningun lado, no se si se deba al acento en Resolución. he googleado bastante y no encuentro por que no funciona.
Ojala alguien pueda orientarme un poco. Saludos.
  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.463 mensajes
  • LocationMéxico

Escrito 28 diciembre 2009 - 05:19

Hola reevil

Intenta con esto



csharp
  1. private void button1_Click(object sender, System.EventArgs e)
  2. {
  3. string ruta;
  4. ruta = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal);
  5. string[] files = Directory.GetFiles(ruta+"\\Resolución");
  6. listBox1.Items.AddRange(files);
  7. }



Salud OS
  • 0

#3 reevil

reevil

    Member

  • Miembros
  • PipPip
  • 32 mensajes
  • LocationMéxico

Escrito 28 diciembre 2009 - 06:21

Muchas gracias Egostar.

He puesto esta modificación tambien:



csharp
  1.             string ruta;
  2.             ruta = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal);
  3.             string[] carpetas = Directory.GetFiles(ruta + "\\Resolución");
  4.             listBox1.Items.AddRange(carpetas);



para poder obtener las carpetas bimestrales y me supongo que ya con eso me puedo ingeniar algun algoritmo recursivo que me regrese los archivos que deseo de cada carpeta.

Saludos.
  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.463 mensajes
  • LocationMéxico

Escrito 28 diciembre 2009 - 06:53

Hola reevil

Que te parece esto.....



csharp
  1. private void button2_Click(object sender, System.EventArgs e)
  2. {
  3. string ruta;
  4. ruta = System.Environment.GetFolderPath(Environment.SpecialFolder.Personal);
  5. foreach (string d in Directory.GetDirectories(ruta+"\\Resolución"))
  6. foreach (string f in Directory.GetFiles(d, "*.*"))
  7. {
  8. listBox1.Items.Add(f);
  9. }
  10. }



Salud OS
  • 0

#5 reevil

reevil

    Member

  • Miembros
  • PipPip
  • 32 mensajes
  • LocationMéxico

Escrito 28 diciembre 2009 - 11:01

Hola y gracias de nuevo Egostar.
Ya lo tenia hecho pero tu solucion tiene menos lineas, yo lo tenia por medio while ...
tendre que irme desacostumbrando poco a poco al C++.
Saludos.
  • 0