Trabajo con el sistema de archivos en C#: ejemplos prácticos para .NET

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajo con el sistema de archivos en C#: de la teoría a la práctica



Trabajar con el sistema de archivos es una de las tareas básicas que enfrenta todo desarrollador. Ya sea para registro de eventos, procesamiento de archivos de configuración, importación de datos o creación de informes, saber leer, escribir y gestionar archivos correctamente en C# (.NET) es necesario en cualquier proyecto. En este artículo, analizaremos ejemplos prácticos de trabajo con el sistema de archivos en C#, desde operaciones simples hasta el procesamiento de directorios.



Usaremos el espacio de nombres System.IO, que proporciona todas las clases necesarias para interactuar con el sistema de archivos.



1. Clases principales para trabajar con archivos y carpetas



Antes de escribir código, es importante conocer las clases clave:



  • File — clase estática para crear, copiar, eliminar y mover archivos.
  • FileInfo — clase de instancia que proporciona información sobre un archivo específico y métodos para trabajar con él.
  • Directory — clase estática para trabajar con carpetas.
  • DirectoryInfo — clase de instancia para obtener información sobre una carpeta.
  • Path — clase utilitaria para trabajar con rutas de archivos.


Veamos un ejemplo muy simple: verificar la existencia de un archivo y crearlo:



using System;using System.IO;

class Program{ static void Main() { string filePath = @"C:\\Test\\example.txt";

if (File.Exists(filePath)) { Console.WriteLine("El archivo existe."); } else { File.Create(filePath).Close(); Console.WriteLine("Archivo creado."); } }}


Tenga en cuenta: después de File.Create() llamamos a Close() para liberar el flujo. En proyectos modernos, es mejor usar la construcción using.



2. Lectura y escritura de archivos de texto



El escenario más común es la lectura y escritura de información textual. En C#, existen las clases convenientes StreamReader y StreamWriter para esto.



2.1 Escritura de datos en un archivo



Ejemplo de escritura de líneas en un archivo usando StreamWriter:



string path = @"C:\\Test\\log.txt";string[] lines = { "Primera línea", "Segunda línea", "Tercera línea" };

using (StreamWriter writer = new StreamWriter(path, false)){ foreach (string line in lines) { writer.WriteLine(line); }}Console.WriteLine("Datos escritos.");


El segundo parámetro del constructor StreamWriter — false significa sobrescribir el archivo. Si se especifica true, los datos se agregarán al final.



2.2 Lectura de datos de un archivo



Lectura de todo el contenido o línea por línea:



string path = @"C:\\Test\\log.txt";

// Lectura de todo el texto en una sola cadenastring allText = File.ReadAllText(path);Console.WriteLine("Texto completo:" + allText);

// Lectura línea por líneastring[] allLines = File.ReadAllLines(path);Console.WriteLine("Línea por línea:");foreach (string line in allLines){ Console.WriteLine(line);}


Para archivos grandes, es mejor usar StreamReader con lectura línea por línea en un bucle, para no cargar todo el archivo en memoria.



using (StreamReader reader = new StreamReader(path)){    string currentLine;    while ((currentLine = reader.ReadLine()) != null)    {        Console.WriteLine(currentLine);    }}


3. Trabajo con archivos binarios (FileStream)



Cuando se necesita trabajar con datos binarios (imágenes, archivos comprimidos, objetos serializados), se utiliza la clase FileStream. Permite leer y escribir datos en forma de bytes.



Ejemplo de escritura y lectura de un arreglo de bytes:



Blogs

Book Recommendations