Manejo de archivos en C#: E/S Operaciones [Ejemplos]
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.
- Lectura: esta operación es la operación de lectura básica en la que se leen datos de un archivo.
- 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.
- 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.
- Gurú99 – .Net
- Gurú99 -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.
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(); } } }
Explicación del código: -
- Primero, configuramos una variable de cadena con la ruta a nuestro archivo Ejemplo.txt.
- 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.
- 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:-
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.
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(); } } }
Explicación del código: -
- Primero, declaramos una variable de matriz de cadena. Esto se utilizará para almacenar el resultado que devolverá el método File.ReadAllLines.
- 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.
- 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:-
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.
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(); } } }
Explicación del código: -
- Primero, declaramos una variable de cadena llamada Líneas. Esto se utilizará para almacenar el resultado que devolverá el método File.ReadAllText.
- 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.
- 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:-
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.
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(); } } }
Explicación del código: -
- 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.
- 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.
- 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.
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(); } } }
Explicación del código: -
- 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á.
- 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.
Resum
- C# tiene varias operaciones de archivo que se pueden realizar con archivos. La mayoría de estas operaciones son parte de la clase File.
- Si desea leer datos de un archivo, puede utilizar los métodos File.ReadAlltext o File.ReadAllLines.
Método de archivo | Descripción original |
---|---|
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. |