En este ejemplo veremos como crear, copiar y borrar archivos en C# de texto. Usando la clase FileInfo puedes hacer operaciones típicas como copiar, mover, renombrar, crear, abrir, eliminar y agregar archivos.
Te mostramos algunas operaciones en el siguiente ejemplo:
using System; using System.IO; //decodigo.com class EjemploInforArchivo { public static void Main() { string path = "D:/dev/decodigo/ejemplos_c_sharp/archivos/archivo_nuevo.txt"; Console.WriteLine("Archivo temporal creado: " + path); var fi1 = new FileInfo(path); // Creamos un archivo para escribir en el using (StreamWriter sw = fi1.CreateText()) { sw.WriteLine("Texto"); sw.WriteLine("de"); sw.WriteLine("Prueba"); } Console.WriteLine("Leemos el contenido de prueba"); // Abrimos el contenido del archivo para leerlo using (StreamReader sr = fi1.OpenText()) { var s = ""; while ((s = sr.ReadLine()) != null) { Console.WriteLine(s); } } try { string path2 = "D:/dev/decodigo/ejemplos_c_sharp/archivos_copiados/archivo_copiado.txt"; var fi2 = new FileInfo(path2); // Nos aseguramos que no exista un archivo con el mismo nombre antes de copiarlo fi2.Delete(); // Copiamos el archivo fi1.CopyTo(path2); Console.WriteLine($"{path} fue copiado en {path2}."); Console.WriteLine("Ultima fecha de modificación: " + fi2.LastWriteTime); Console.WriteLine("Tamaño: " + fi2.Length); Console.WriteLine("Presiona Enter para continuar."); Console.ReadLine(); // Borramos el archivo creado fi2.Delete(); Console.WriteLine($"{path2} fue borrado correctamente."); } catch (Exception e) { Console.WriteLine($"El proceso falló: {e.ToString()}"); } Console.WriteLine("Presiona Enter para terminar."); var name = Console.ReadLine(); } }
Te explicamos el código de forma rápida. En los primeros bloques, creamos y mostramos en consola el contenido de un archivo de texto con sólo tres líneas de prueba.
string path = "D:/dev/decodigo/ejemplos_c_sharp/archivos/archivo_nuevo.txt"; Console.WriteLine("Archivo temporal creado: " + path); var fi1 = new FileInfo(path); // Creamos un archivo para escribir en el using (StreamWriter sw = fi1.CreateText()) { sw.WriteLine("Texto"); sw.WriteLine("de"); sw.WriteLine("Prueba"); } Console.WriteLine("Leemos el contenido de prueba"); // Abrimos el contenido del archivo para leerlo using (StreamReader sr = fi1.OpenText()) { var s = ""; while ((s = sr.ReadLine()) != null) { Console.WriteLine(s); } }
Posteriormente, creamos una segunda ruta que nos indicará donde copiaremos nuestro archivo de texto. En nuestro caso tenemos dos carpetas, «archivos» y «archivos_copiados«, en la primera estamos creando el archivo txt y en la segunda carpeta copiaremos el archivo con otro nombre: «archivo_copiado.txt«.
Antes de continuar nos aseguramos de que no exista el archivo que queremos copiar, borrándolo con la función Delete();
string path2 = "D:/dev/decodigo/ejemplos_c_sharp/archivos_copiados/archivo_copiado.txt"; var fi2 = new FileInfo(path2); // Nos aseguramos que no exista un archivo con el mismo nombre antes de copiarlo fi2.Delete();
Más adelante, copiamos el archivo y mostramos información como fecha de última modificación y tamaño del archivo:
// Copiamos el archivo fi1.CopyTo(path2); Console.WriteLine($"{path} fue copiado en {path2}."); Console.WriteLine("Ultima fecha de modificación: " + fi2.LastWriteTime); Console.WriteLine("Tamaño: " + fi2.Length);
Finalmente, borramos el archivo copiado, después de presionar la tecla «Enter» desde consola:
Console.WriteLine("Presiona Enter para continuar."); Console.ReadLine();
Al final del ejercicio sólo quedará el archivo en su carpeta original:
En consola obtendrás algo como lo siguiente:
Archivo temporal creado: D:/dev/decodigo/ejemplos_c_sharp/archivos/archivo_nuevo.txt Leemos el contenido de prueba Texto de Prueba D:/dev/decodigo/ejemplos_c_sharp/archivos/archivo_nuevo.txt fue copiado en D:/dev/decodigo/ejemplos_c_sharp/archivos_copiados/archivo_copiado.txt. Ultima fecha de modificación: 22/09/2021 02:44:45 p. m. Tamaño: 19 Presiona Enter para continuar. D:/dev/decodigo/ejemplos_c_sharp/archivos_copiados/archivo_copiado.txt fue borrado correctamente. Presiona Enter para terminar.
Desde luego, para tus pruebas no olvides modificar las rutas por las tuyas, que sean válidas y con permisos de escritura.
Ver más documentación: https://docs.microsoft.com/en-us/dotnet/api/system.io.fileinfo?view=net-5.0