Manejo de archivos en C#: E/S Operaciones [Ejemplos]

โšก Resumen inteligente

Las operaciones de archivos en C# permiten leer, escribir, copiar y eliminar archivos mediante el espacio de nombres System.IO. Aquรญ aprenderรก a usar File.Exists, File.ReadAllLines, File.ReadAllText, File.Copy y File.Delete con ejemplos de cรณdigo claros.

  • ๐Ÿ“‚ Quรฉ es: Las operaciones de archivos en C# leen, escriben, copian y eliminan archivos a travรฉs del espacio de nombres System.IO.
  • โœ… El archivo existe: File.Exists(path) comprueba si un archivo estรก presente antes de leerlo o eliminarlo.
  • Lรญnea Lectura: File.ReadAllLines devuelve una matriz de cadenas, mientras que File.ReadAllText devuelve todo el archivo como una sola cadena.
  • ๐Ÿ“‹ Copiar y eliminar: File.Copy duplica un archivo en una nueva ruta y File.Delete lo elimina.
  • ๐Ÿค– Ayuda de IA: Las herramientas de IA como GitHub Copilot generan cรณdigo C# para el manejo de archivos al instante.

Archivo C# OperaSupuestos de Alcance

C# tiene una amplia gama de operaciones con archivos. Estas operaciones incluyen abrir un archivo, leerlo o escribir en รฉl. Puede haber casos en los que desee trabajar con archivos directamente, en cuyo caso utilizarรญa las operaciones con archivos disponibles en C#. A continuaciรณn se mencionan algunas de las operaciones bรกsicas con archivos.

  1. Lectura: esta operaciรณn es la operaciรณn de lectura bรกsica en la que se leen datos de un archivo.
  2. Escritura: esta es la operaciรณn bรกsica de escritura en la que se escriben datos en un archivo. De manera predeterminada, se eliminan todos los contenidos existentes del archivo y se escribe contenido nuevo.
  3. Anexar: esta operaciรณn tambiรฉn implica escribir informaciรณn en un archivo. La รบnica diferencia es que los datos existentes en un archivo no se sobrescriben. Los nuevos datos que se van a escribir se agregan al final del archivo.

Comandos bรกsicos de E/S

C# y .Net pueden trabajar con archivos con la ayuda de varios comandos de E/S de archivos. Echemos un vistazo a algunos de estos comandos. Para nuestro ejemplo, asumiremos que tenemos un archivo en la unidad D llamado Ejemplo.txt.
El archivo serรก un archivo de texto simple y tendrรก 2 lรญneas como se muestra a continuaciรณn.

  • Guru99 โ€“ .Net
  • Guru99 -C#

Para nuestro ejemplo, crearemos una aplicaciรณn de consola simple y trabajaremos con nuestros comandos de E/S de archivos. La aplicaciรณn de consola es la bรกsica que se creรณ en el tutorial anterior. En la aplicaciรณn de consola, todo el cรณdigo se escribe en el archivo program.cs.

El archivo existe

El mรฉtodo Archivo existe se utiliza para comprobar si existe un archivo en particular. Ahora veamos el cรณdigo que se puede usar para verificar si nuestro archivo Ejemplo.txt existe o no. Ingrese el siguiente cรณdigo en el archivo program.cs.

El archivo existe

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  static void Main(string[] args)
  {
   String path = @"D:\Example.txt";
   
   if (File.Exists(path))
   {
    Console.WriteLine("File Exists");
   }
   Console.ReadKey();
  }
 }
}

Code Explicaciรณn:-

  1. Primero, configuramos una variable de cadena con la ruta a nuestro archivo Ejemplo.txt.
  2. A continuaciรณn, utilizamos el mรฉtodo File.Exists para comprobar si el archivo existe o no. Si el archivo existe, se devolverรก un valor verdadero.
  3. Si obtenemos un valor verdadero y el archivo existe, escribimos el mensaje "El archivo existe" en la consola.

Cuando se configura el cรณdigo anterior y se ejecuta el proyecto mediante Visual Studio, obtendrรก el siguiente resultado.

Salida:-

El archivo existe

De la salida anterior, puede ver que el comando File.Exists se ejecutรณ correctamente y se mostrรณ el mensaje correcto en la ventana de la consola.

Archivo.ReadAlllines

El mรฉtodo se utiliza para leer todas las lรญneas una por una en un archivo. Luego, las lรญneas se almacenan en una variable de matriz de cadenas. Veamos un ejemplo. Ingrese el siguiente cรณdigo en el archivo program.cs.

Archivo.ReadAlllines

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  static void Main(string[] args)
  {
   String path = @"D:\Example.txt";

   String[] lines;
   lines = File.ReadAllLines(path);

   Console.WriteLine(lines[0]);
   Console.WriteLine(lines[1]);

   Console.ReadKey();
  }
 }
}

Code Explicaciรณn:-

  1. Primero, declaramos una variable de matriz de cadena. Esto se utilizarรก para almacenar el resultado que devolverรก el mรฉtodo File.ReadAllLines.
  2. A continuaciรณn, utilizamos el mรฉtodo File.ReadAllLines para leer todas las lรญneas de nuestro archivo de texto. Luego, el resultado se pasa a la variable de lรญneas.
  3. Como sabemos que nuestro archivo contiene solo 2 lรญneas, podemos acceder al valor de las variables de la matriz mediante el comando lรญneas [0] y lรญneas [1].

Cuando se configura el cรณdigo anterior y el proyecto se ejecuta usando Visual Studio, obtendrรก el siguiente resultado.

Salida:-

Archivo.ReadAlllines

En el resultado, puede ver que el comando File.ReadAllLines devolviรณ ambas lรญneas de nuestro archivo Ejemplo.txt.

Archivo.ReadAllText

Este mรฉtodo se utiliza para leer todas las lรญneas de un archivo a la vez. Luego, las lรญneas se almacenan en una variable de cadena. Veamos un ejemplo. Ingrese el siguiente cรณdigo en el archivo program.cs.

Archivo.ReadAllText

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  class Tutorial
  {
   static void Main(string[] args)
   {
    String path = @"D:\Example.txt";

    String lines;
    lines = File.ReadAllText(path);
    Console.WriteLine(lines);
 
    Console.ReadKey();
   }
  }
}

Code Explicaciรณn:-

  1. Primero, declaramos una variable de cadena llamada Lรญneas. Esto se utilizarรก para almacenar el resultado que devolverรก el mรฉtodo File.ReadAllText.
  2. A continuaciรณn, utilizamos el mรฉtodo File.ReadAllText para leer todas las lรญneas de nuestro archivo de texto. Luego, el resultado se pasa a la variable de lรญneas.
  3. Podemos usar directamente el mรฉtodo Console.Writeline para mostrar el valor de la variable Lines.

Cuando se configura el cรณdigo anterior y se ejecuta el proyecto mediante Visual Studio, obtendrรก el siguiente resultado.

Salida:-

Archivo.ReadAllText

En el resultado, puede ver que el comando File.ReadAlltext devolviรณ ambas lรญneas de nuestro archivo Ejemplo.txt.

Copia de archivo

El mรฉtodo se utiliza para hacer una copia de un archivo existente. Veamos un ejemplo. Ingrese el siguiente cรณdigo en el archivo program.cs.

Copia de archivo

using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  class Tutorial
  {
   static void Main(string[] args)
   {
   String path = @"D:\Example.txt";

   String copypath = @"D:\ExampleNew.txt";

   File.Copy(path,copypath);

   Console.ReadKey();
   }
  }
}

Code Explicaciรณn:-

  1. Primero, declaramos una variable de cadena llamada ruta. Esta serรก la ubicaciรณn de nuestro archivo Example.txt. Este archivo serรก el archivo fuente utilizado para la operaciรณn de copia.
  2. A continuaciรณn, declaramos una variable de cadena llamada ruta de copia. Esta serรก la ubicaciรณn de un nuevo archivo llamado archivo EjemploNuevo.txt. Este serรก el archivo de destino en el que se escribirรกn los contenidos desde el archivo fuente Ejemplo.txt.
  3. Luego llamamos al mรฉtodo File.Copy para copiar el archivo Ejemplo.txt al archivo EjemploNuevo.txt.

Cuando se configura el cรณdigo anterior y se ejecuta el proyecto mediante Visual Studio, el archivo Example.txt se copiarรก a ExampleNew.txt.

Archivo.Eliminar

El mรฉtodo se utiliza para eliminar un archivo existente. Veamos un ejemplo. Ingrese el siguiente cรณdigo en el archivo program.cs.

Archivo.Eliminar

using System;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
  class Tutorial
  {
   static void Main(string[] args)
   {
   String path = @"D:\Example.txt";

   File.Delete(path);

   Console.ReadKey();
   }
  }
}

Code Explicaciรณn:-

  1. Primero, declaramos una variable de cadena llamada ruta. Esta serรก la ubicaciรณn de nuestro archivo Ejemplo.txt. Este es el archivo que se eliminarรก.
  2. A continuaciรณn, llamamos al mรฉtodo File.Delete para eliminar el archivo.

Cuando se configura el cรณdigo anterior y se ejecuta el proyecto mediante Visual Studio, el archivo Example.txt se eliminarรก de la unidad D.

Referencia de mรฉtodos de archivo de C#

La siguiente tabla resume los principales mรฉtodos de archivo de C# y la funciรณn de cada uno.

Mรฉtodo de archivo Mareas Ideales para Lecciones
El archivo existe El mรฉtodo de archivo existente se utiliza para comprobar si existe un archivo en particular.
Archivo.ReadAlllines El mรฉtodo se utiliza para leer todas las lรญneas una por una en un archivo.
Archivo.ReadAllText Este mรฉtodo se utiliza para leer todas las lรญneas de un archivo a la vez.
Copia de archivo El mรฉtodo se utiliza para hacer una copia de un archivo existente.
Archivo.Eliminar El mรฉtodo se utiliza para eliminar un archivo existente.

Preguntas Frecuentes

Las operaciones de archivos en C# permiten leer, escribir, copiar, aรฑadir y eliminar archivos. La mayorรญa de los mรฉtodos pertenecen a la clase System.IO.File, como File.Exists, File.ReadAllText, File.Copy y File.Delete.

Utilice File.Exists(path), que devuelve true si el archivo existe y false en caso contrario. Compruรฉbelo antes de leer o eliminar un archivo para evitar excepciones en tiempo de ejecuciรณn.

File.ReadAllLines devuelve cada lรญnea como un elemento de una matriz de cadenas, mientras que File.ReadAllText devuelve todo el contenido del archivo como una sola cadena.

Llama a File.Copy(sourcePath, destinationPath). Esto crea un nuevo archivo en el destino que contiene el contenido del archivo de origen.

Llama a File.Delete(ruta). Esto elimina el archivo de forma permanente, asรญ que primero confirma que existe con File.Exists para evitar una excepciรณn FileNotFoundException.

Los asistentes de IA como GitHub Copilot autocompletan las llamadas a File.ReadAllText, File.Copy y File.Delete, y generan cรณdigo try-catch para el manejo de archivos a partir de un breve comentario que describe la tarea.

Sรญ. Las herramientas con inteligencia artificial generan mรฉtodos de lectura y escritura, sugieren mรฉtodos StreamReader o File y aรฑaden manejo de excepciones para que tu cรณdigo sea mรกs seguro.

Agregue using System.IO; al principio de su programa. El espacio de nombres System.IO contiene File, StreamReader y StreamWriter Clases utilizadas para el manejo de archivos.

Resumir este post con: