Hoy traigo un mini aporte de Crear/Leer/Editar/Borrar archivos (.txt) estoy inicializando en C#, no es gran cosa pero tal ves a alguien le puede servir de utilidad.
Este programa lo que hace es crear archivos con datos personales, que los guarda en una ruta especifica y luego podemos leerlo, editarlo o borrarlo según nuestro gusta. Los datos que nos piden son el Nombre, Apellidos y DNI. (Se puede añadir o quietar más opciones según desee el usuario) (modificas dichas líneas de código)
Antes de empezar tengo que advertir de que tienen que editar las rutas de las carpetas, ya que las tengo definidas para mi pc.
Código
@"C:\Users\Usuario\Desktop\Textos\carpetaArchivos\" + nombreArchivo + ".txt"
Todas las definiciones de rutas, han de cambiarlas por su ruta.
En todas las clases se encuentra una variable con dicha ruta, por ello necesita esa única modificación.
Empecemos por la clase main:
Código
using System; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading.Tasks; namespace Prueba10_CrearArchivo { class Program { static void Main(string[] args) { //Importamos las clases //Pedimos que opcion realizar Console.WriteLine("-> crear (creacion de un archivo nuevo)"); Console.WriteLine("-> leer (leemos el contenido del archivo)"); Console.WriteLine("-> editar (editamos el contenido del archivo)"); Console.WriteLine("-> borrar (borrar el archivo seleecionado)"); Console.WriteLine("\nElija una opcion a realizar:"); string opcion = Console.ReadLine(); string repetir; //Verificamos la accion de cada opcion a realizar if (opcion == "crear") { do { //Ejecutamos el proceso Crear.crearArchivo(); //Preguntamos si queremos repetir de nuevo el mismo proceso Console.WriteLine("\nDeseas crear otro archivo? (si/no)"); repetir = Console.ReadLine(); } while (repetir == "si"); } else if (opcion == "leer") { do { Leer.archivoLeer(); Console.WriteLine("\nDeseas crear otro archivo? (si/no)"); repetir = Console.ReadLine(); } while (repetir == "si"); } else if (opcion == "editar") { do { Editar.archivoEditar(); Console.WriteLine("\nDeseas crear otro archivo? (si/no)"); repetir = Console.ReadLine(); } while (repetir == "si"); } else if (opcion == "borrar") { do { Borrar.archivoBorrar(); Console.WriteLine("\nDeseas borrar otro archivo? (si/no)"); repetir = Console.ReadLine(); } while (repetir == "si"); } else { Console.WriteLine("La opcion seleccionada parece no existir."); } Console.ReadKey(); } } }
Creamos una clase llamada clsCrear e introduciremos lo siguiente:
Código
using System; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading.Tasks; namespace Prueba10_CrearArchivo { public class clsCrear { public void crearArchivo() { //Seleccionamos la carpeta. string folderName = @"C:\Users\Usuario\Desktop\Textos"; //La subcarpeta donde se crearan los archivos string pathString = System.IO.Path.Combine(folderName, "carpetaArchivos"); string pathString2 = @"C:\Users\Usuario\Desktop\Textos\carpetaArchivos"; //Creamos la subcarpeta System.IO.Directory.CreateDirectory(pathString); //Pedimos un nombre para el archivo Console.WriteLine("\nIntroduzca el DNI (Nombre de archivo):"); string nombreFile = Console.ReadLine(); string fileName = nombreFile + ".txt"; pathString = System.IO.Path.Combine(pathString, fileName); //Verificamos si existe el archivo if (System.IO.File.Exists(pathString)) { Console.WriteLine("\nEl archivo ya existe."); } else { //Si el archivo no existe, pedimos un nombre de usuario para escribir en el archivo Console.WriteLine("\nIntroduzca su nombre:"); string clienteNombre = Console.ReadLine(); Console.WriteLine("Introduzca sus apellidos:"); string clienteApellidos = Console.ReadLine(); Console.WriteLine("Introduzca su dni"); string clienteDni = Console.ReadLine(); { sw.WriteLine("Nombre: " + clienteNombre); sw.WriteLine("Apellidos: " + clienteApellidos); sw.WriteLine("DNI: " + clienteDni); } //Mostramos la ruta donde se guardo el archivo Console.WriteLine("\nSe ha guardado en: {0}", pathString); } //Pedimos que presione una tecla para salir del programa Console.WriteLine("Precione una tecla para salir."); } } }
Creamos de nuevo otra clase llamada clsLeer e introducimos lo siguiente:
Código
using System; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading.Tasks; namespace Prueba10_CrearArchivo { public class clsLeer { public void archivoLeer() { //Pedimos el nombre de archivo (dni) Console.WriteLine("\nIntroduce el archivo a buscar:"); string searchFile = Console.ReadLine(); Console.WriteLine("\n"); //Verificamos la ruta del archivo string path = @"C:\\Users\\Usuario\\Desktop\\Textos\\carpetaArchivos\\" + searchFile + ".txt"; //Comprobamos si existe el archivo especificado if (System.IO.File.Exists(path)) { System.IO.StreamReader file = new System.IO.StreamReader(@"C:\Users\Usuario\Desktop\Textos\carpetaArchivos\" + searchFile + ".txt"); int counter = 0; string line; //Mostramos todas las lineas que hay escritas en el archivo while ((line = file.ReadLine()) != null) { Console.WriteLine(line); counter++; } file.Close(); } else { Console.WriteLine("El archivo especificado no se ha encontrado."); } } } }
Creamos una clase llamada clsEditar y introducimos lo siguiente:
Código
using System; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading.Tasks; namespace Prueba10_CrearArchivo { public class clsEditar { public void archivoEditar() { //Pedimos el nombre del fichero (dni) Console.WriteLine("\nIntroduzca el DNI para editar:"); string nombreArchivo = Console.ReadLine(); //Especificamos la ruta del archivo string path = @"C:\\Users\\Usuario\\Desktop\\Textos\\carpetaArchivos\\" + nombreArchivo + ".txt"; //Verificamos que existe el archivo if (System.IO.File.Exists(path)) { string nombre = "Nombre: "; string apellidos = "Apellidos: "; //Pedimos los datos nuevos Console.WriteLine("\nIntroduzca el nombre:"); string nuevoNombre = Console.ReadLine(); Console.WriteLine("Introduzca el/los apellidos:"); string nuevoApellido = Console.ReadLine(); //Leemos todas las lineas que se encuentra en el archivo var lines = File.ReadAllLines(path); //Reemplazamos los datos nuevos por los viejos var replaced = lines.Select(x => { if (x.StartsWith(nombre)) return nombre + nuevoNombre; if (x.StartsWith(apellidos)) return apellidos + nuevoApellido; return x; }); File.WriteAllLines(path, replaced); //Mostramos el resultado de la modificacion del archivo System.IO.StreamReader file = new System.IO.StreamReader(@"C:\Users\Usuario\Desktop\Textos\carpetaArchivos\" + nombreArchivo + ".txt"); int counter = 0; string line; Console.WriteLine("\n"); while ((line = file.ReadLine()) != null) { Console.WriteLine(line); counter++; } Console.WriteLine("\nEl archivo se ha modificado correctamente."); } else { Console.WriteLine("El archivo especificado no se ha encontrado."); } } } }
Y por último creamos una clase llamada clsBorrar y insertamos lo siguiente:
Código
using System; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading.Tasks; namespace Prueba10_CrearArchivo { public class clsBorrar { public void archivoBorrar() { //Pedimos el nombre del archivo (dni) Console.WriteLine("\nIntroduzca el DNI para eliminar el fichero:"); string nombreArchivo = Console.ReadLine(); //Especificamos la ruta del archivo string pathString = @"C:\Users\Usuario\Desktop\Textos\carpetaArchivos\" + nombreArchivo + ".txt"; //Comprobamos que el archivo exite if (System.IO.File.Exists(pathString)) { //Preguntamos si esta seguro de borrar el archivo Console.WriteLine("Seguro que desea borrar el archivo? (si/no)"); string confirmar = Console.ReadLine(); //Si la respues es 'si' se procederá a borrarse dicho archivo seleccionado if(confirmar == "si") { File.Delete(@"C:\Users\Usuario\Desktop\Textos\carpetaArchivos\" + nombreArchivo + ".txt"); Console.WriteLine("\nEl archivo ha sido eliminado correctamente."); } else { Console.WriteLine("\nHa cancelado el borrado de archivos correctamente."); } } else { Console.WriteLine("\nEl archivo no se ha encontrado."); } } } }
Una vez tengamos todo, ejecutamos y debería funcionar correctamente.
De igual modo aquí dejaré la descarga de los archivos (proyecto en Visual Studio) (No incluye .exe por normas del foro y por seguridad a futuras infecciones)
Descarga: https://mega.nz/#!OVUXUaxK!fJzzKyj9YKm2MRlPsNr87ZRtoKFKpIqyagcrO5wlpIY
Previa de como quedaría los archivos:
Espero que les puedan servir de utilidad dicho aporte.
Saludos.