[C#] [Aporte] Administrador de archivos (crear/leer/editar/borrar)

Iniciado por DeMoNcRaZy, 3 Septiembre 2015, 15:20 PM

0 Miembros y 1 Visitante están viendo este tema.

DeMoNcRaZy

Buenas,

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 (csharp) [Seleccionar]

@"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 (csharp) [Seleccionar]

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
           clsCrear Crear = new clsCrear();
           clsLeer Leer = new clsLeer();
           clsEditar Editar = new clsEditar();
           clsBorrar Borrar = new clsBorrar();
           //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 (csharp) [Seleccionar]

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();

               using (StreamWriter sw = new StreamWriter(pathString))
               {
                   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 (csharp) [Seleccionar]

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 (csharp) [Seleccionar]

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 (csharp) [Seleccionar]

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.
Esta página web no está disponible - Google Chrome

Eleкtro