Pregunta sobre GetFiles y archivos

02/02/2004 - 18:34 por EL OSO | Informe spam
Saludos!

Necesito hacer una aplicacion que procese los archivos de un directorio.
Normalmente utilizaria GetFiles para crear un array[] con los nombres del
directorio en cuestion.

El problema es que estoy esperando una enorme cantidad de archivos en ese
directorio (entre 150.000 y 200.000) con nombres de (en promedio) 15
caracteres, por lo cual me preocupa la posibilidad de que no pueda generar
dicho string[].

Hay alguna forma de acceder de a uno a los archivos de un directorio?
En C++ existian 3 funciones en el IO.H que permitian mediante una funcion
_findnext acceder uno por uno a los archivos de un directorio utilizando un
patron de busqueda. Existe algo similar o alguna forma de lograr eso en C#?


Desde ya, muchisimas gracias por cualquier ayuda!

Preguntas similare

Leer las respuestas

#1 pablo crosio
02/02/2004 - 23:40 | Informe spam
OSO:

Desconozco algo directo en C# que haga lo que
necesitás tal vez armando las llamadas p/invoke a las
APIs FindFirstFile(), FindNextFile(), FindClose()

Salu2!!

Pablo

Saludos!

Necesito hacer una aplicacion que procese los archivos de


un directorio.
Normalmente utilizaria GetFiles para crear un array[] con


los nombres del
directorio en cuestion.

El problema es que estoy esperando una enorme cantidad de


archivos en ese
directorio (entre 150.000 y 200.000) con nombres de (en


promedio) 15
caracteres, por lo cual me preocupa la posibilidad de que


no pueda generar
dicho string[].

Hay alguna forma de acceder de a uno a los archivos de un


directorio?
En C++ existian 3 funciones en el IO.H que permitian


mediante una funcion
_findnext acceder uno por uno a los archivos de un


directorio utilizando un
patron de busqueda. Existe algo similar o alguna forma de


lograr eso en C#?


Desde ya, muchisimas gracias por cualquier ayuda!



.

Respuesta Responder a este mensaje
#2 A.Poblacion
03/02/2004 - 09:41 | Informe spam
Bueno, un nombre de 15 caracteres ocupa 30 bytes, que multiplicado por
200000 te da una ocupación de memoria de 6 Megabytes. No debería ser
problema para un equipo moderno.
Lo que sí es una barbaridad es crear 200.000 archivos en un único directorio
en disco. El sistema de archivos no está previsto para manejar tantos
archivos juntos en un directorio y te arriesgas a tener grandes problemas de
rendimiento.


"EL OSO" wrote in message
news:
Saludos!

Necesito hacer una aplicacion que procese los archivos de un directorio.
Normalmente utilizaria GetFiles para crear un array[] con los nombres del
directorio en cuestion.

El problema es que estoy esperando una enorme cantidad de archivos en ese
directorio (entre 150.000 y 200.000) con nombres de (en promedio) 15
caracteres, por lo cual me preocupa la posibilidad de que no pueda generar
dicho string[].

Hay alguna forma de acceder de a uno a los archivos de un directorio?
En C++ existian 3 funciones en el IO.H que permitian mediante una funcion
_findnext acceder uno por uno a los archivos de un directorio utilizando


un
patron de busqueda. Existe algo similar o alguna forma de lograr eso en


C#?


Desde ya, muchisimas gracias por cualquier ayuda!



Respuesta Responder a este mensaje
#3 David Gañán Jiménez
13/02/2004 - 08:11 | Informe spam
En C# existe el namespace System.IO, en el cual encontraras las clases
FileIfo y DirectoryInfo que te permitiran hacer lo que dices. El siguiente
codigo muestra por mantalla los nombres de todos los directorios y ficheros
de un directorio:

static void ListFiles(string directory)
{
DirectoryInfo di = new DirectoryInfo (directory);

foreach (DirectoryInfo d in di.GetDirectories())
{
Console.WriteLine ("Directorio: " + d.FullName);
}

foreach (FileInfo f in di.GetFiles())
{
Console.WriteLine ("Fichero: " + f.FullName);
}
}

para ver por ejemplo los ficheros y directorios del directorio C:\, puedes
llamarlo como:

ListFiles (@"C:\");

Si lo que quieres es listar los ficheros de forma recursiva, vuelve a llamar
al metodo con cada uno de los objetos DirectoryInfo que devuelve
GetDirectories().

Saludos
David Gañán

"EL OSO" escribió en el mensaje
news:
Saludos!

Necesito hacer una aplicacion que procese los archivos de un directorio.
Normalmente utilizaria GetFiles para crear un array[] con los nombres del
directorio en cuestion.

El problema es que estoy esperando una enorme cantidad de archivos en ese
directorio (entre 150.000 y 200.000) con nombres de (en promedio) 15
caracteres, por lo cual me preocupa la posibilidad de que no pueda generar
dicho string[].

Hay alguna forma de acceder de a uno a los archivos de un directorio?
En C++ existian 3 funciones en el IO.H que permitian mediante una funcion
_findnext acceder uno por uno a los archivos de un directorio utilizando


un
patron de busqueda. Existe algo similar o alguna forma de lograr eso en


C#?


Desde ya, muchisimas gracias por cualquier ayuda!



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida