Trabajo con el sistema de archivos en C#: guía completa

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#: desde lo básico hasta técnicas avanzadas



Trabajar con el sistema de archivos es una de las tareas clave en el desarrollo de cualquier aplicación. En C# (.NET) existe para este propósito el potente espacio de nombres System.IO, que proporciona al desarrollador un conjunto completo de herramientas para crear, leer, escribir, mover y eliminar archivos y carpetas. En este artículo analizaremos en detalle todas las operaciones básicas con el sistema de archivos, comenzando con ejemplos simples y terminando con técnicas avanzadas de procesamiento de datos.



Fundamentos del trabajo con archivos en C#



El espacio de nombres System.IO incluye las clases File y FileInfo, que proporcionan métodos estáticos y de instancia para gestionar archivos. Veamos las operaciones principales.



Lectura y escritura de archivos de texto



La forma más sencilla de trabajar con archivos de texto es utilizando los métodos estáticos de la clase File:



using System.IO;

// Escribir texto en un archivo (crea un nuevo archivo o sobrescribe uno existente)string content = "¡Hola, mundo! Este es un ejemplo de trabajo con archivos en C#.";File.WriteAllText(@"C:\\temp\\example.txt", content);

// Leer todo el texto de un archivostring readContent = File.ReadAllText(@"C:\\temp\\example.txt");Console.WriteLine(readContent);

// Añadir al final del archivoFile.AppendAllText(@"C:\\temp\\example.txt", "Nueva línea añadida.");


Trabajo con archivos binarios



Para trabajar con datos binarios utiliza File.ReadAllBytes y File.WriteAllBytes:



byte[] binaryData = new byte[] { 0x48, 0x65, 0x6C, 0x6C, 0x6F };File.WriteAllBytes(@"C:\\temp\\binary.bin", binaryData);

byte[] readBinary = File.ReadAllBytes(@"C:\\temp\\binary.bin");Console.WriteLine(string.Join(", ", readBinary)); // Salida: 72, 101, 108, 108, 111


Verificación de existencia de un archivo y su eliminación



Antes de realizar operaciones con archivos siempre es útil verificar su existencia:



string filePath = @"C:\\temp\\example.txt";

if (File.Exists(filePath)){ Console.WriteLine("El archivo existe. Eliminando..."); File.Delete(filePath); Console.WriteLine("Archivo eliminado.");}else{ Console.WriteLine("Archivo no encontrado.");}


Trabajo con directorios en C#



Para gestionar carpetas se utilizan las clases Directory y DirectoryInfo. Permiten crear, mover, renombrar y eliminar directorios, así como obtener información sobre ellos.



Creación y eliminación de carpetas



string dirPath = @"C:\\temp\\MyNewFolder";

// Crear carpeta (si ya existe, no se lanza una excepción)Directory.CreateDirectory(dirPath);

// Verificar existenciaif (Directory.Exists(dirPath)){ Console.WriteLine("Carpeta creada exitosamente.");}

// Eliminar carpeta (segundo parámetro - eliminar recursivamente)Directory.Delete(dirPath, recursive: true);Console.WriteLine("Carpeta eliminada.");


Obtener lista de archivos y subcarpetas



Los métodos GetFiles y GetDirectories permiten obtener el contenido de un directorio:



string targetDir = @"C:\\temp";

// Obtener todos los archivos en el directoriostring[] files = Directory.GetFiles(targetDir);Console.WriteLine("Archivos en el directorio:");foreach (string file in files){ Console.WriteLine($" {Path.GetFileName(file)}");}

// Obtener todas las subcarpetasstring[] subDirs = Directory.GetDirectories(targetDir);Console.WriteLine("Subcarpetas:");foreach (string dir in subDirs){ Console.WriteLine($" {Path.GetFileName(dir)}");}

// Búsqueda por patrón (por ejemplo, todos los archivos de texto)string[] txtFiles = Directory.GetFiles(targetDir, "*.txt");Console.WriteLine($"Se encontraron {txtFiles.Length} archivos de texto.");


Trabajo con DirectoryInfo



La clase DirectoryInfo

Blogs

Book Recommendations