ASP.NET - Contatenar archivos de Texto

 
Vista:
sin imagen de perfil

Contatenar archivos de Texto

Publicado por Leonardo (52 intervenciones) el 19/09/2008 18:39:38
Buenos días:

Tengo el siguiente problema y me gustaría que me pudieran ayudar, actualmente estoy desarrollando una aplicación para el tratamiento de archivos de texto en ASP.NET con C#. El usuario va a depositar un archivo de texto en una carpeta de mi servidor y yo tengo que analizar ese achivo de texto para poder cargarlo en una base de datos. Cada archivo de texto que proceso contiene alrededor de 10000 registros.

Hasta aquí no hay problema, pero ahora tengo la siguiente complicación. Uno de mis usuarios tiene toda su información separada en diversos archivos (en ocasiones el número de archivos ha llegado hasta 80). estos archivos generalmente no tienen más de 200 registros, pero resulta muy tardado hacer la carga de uno por uno.

Lo que necesito es desarrollar una herramienta que me permita concatenar estos 80 archivos pequeños en un archivo de texto completo, para así solamente hacer la carga de un archivo. ¿Alguien tiene un idea de como puedo hacer esto?

De antemano muchas gracias por todo y espero que alguno de ustedes me pueda ayudar.
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Contatenar archivos de Texto

Publicado por Leonardo (52 intervenciones) el 19/09/2008 22:45:53
Hola de nuevo... Afortunadamente ya hubo quien me ayudara en otro foro, y bueno, aquí está el código que resultó para aquellos a los que les pueda servir. La única concideración es que todos los archivos deberán estar en un mismo directorio:

//Directorio Contiene la ruta física donde se encuentran todos los archivos
//Archivo Final es el nombre del archivo (incluyendo la ruta) que tiene la
//concatenación de todos los archivos
static void Concatena(string Directorio, string ArchivoFinal)
{
//Crea un arreglo con el nombre de todos los archivos existentes
string[] ArchivosEntrada = Directory.GetFiles(Directorio);
//Creamos el archivo Final
FileStream Archivo = new FileStream(ArchivoFinal, FileMode.Create,
FileAccess.Write, FileShare.None);
//Para indicar que se va a escribir en el archivo
StreamWriter writer = new StreamWriter(Archivo);
foreach (string ArchivoEntrada in ArchivosEntrada)
{
//Cargamos el archivo correspondiente
FileStream ArchivoConcatenar = new FileStream(ArchivoEntrada,
FileMode.Open, FileAccess.Read);
//Especificamos que se va a leer el archivo (nota, si no se le pone la
//instrucción System.Text.Encoding.GetEncoding(1252) los acentos no son leidos)
StreamReader reader = new StreamReader(ArchivoConcatenar, System.Text.Encoding.GetEncoding(1252));
string Linea;
//Recorremos el archivo linea a linea y la vamos escribiendo en el archivo
//final
while ((Linea = reader.ReadLine()) != null)
{
writer.WriteLine(Linea);
}
//Cerramos el archivo y continuamos con el siguiente
reader.Close();

}
//Cerramos el archivo Final
writer.Close();
}

Espero que les pueda servir de algo, y si tienen alguna otra idea que mejore el rendimiendo de este código pues por favor compartala con todos nosotros.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar