Trabajo con el sistema de archivos en C++: guía completa para principiantes

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++: para principiantes



Trabajar con el sistema de archivos es una de las tareas clave de cualquier programador. En C++ existen varias formas de interactuar con archivos y directorios: desde los flujos clásicos fstream hasta el moderno std::filesystem (C++17). En este artículo analizaremos las operaciones básicas: lectura y escritura de archivos, verificación de su existencia, creación y eliminación de carpetas, así como la navegación por el sistema de archivos. Todos los ejemplos de código están escritos en C++ y son adecuados para principiantes.



1. Fundamentos del trabajo con archivos mediante fstream



Las clases ifstream (entrada desde archivo), ofstream (salida a archivo) y fstream (entrada/salida) son las herramientas básicas para trabajar con archivos de texto y binarios. Se encuentran en el archivo de cabecera <fstream>.



Lectura de un archivo

Para leer datos de un archivo, cree un objeto ifstream y abra el archivo. Asegúrese de que el archivo exista; de lo contrario, el flujo estará en estado de error.



#include <iostream>#include <fstream>#include <string>

int main() { std::ifstream file("example.txt"); if (!file.is_open()) { std::cerr << "Error al abrir el archivo"; return 1; }

std::string line; while (std::getline(file, line)) { std::cout << line << std::endl; }

file.close(); return 0;}


Escritura en un archivo

Para escribir, use ofstream. Si el archivo no existe, se creará. Si existe, el contenido se sobrescribirá (a menos que se especifique la bandera std::ios::app).



#include <fstream>

int main() { std::ofstream file("output.txt"); if (!file.is_open()) { std::cerr << "No se pudo crear el archivo"; return 1; }

file << "Hello, world!"; file << "Sistema de archivos C++";

file.close(); return 0;}


Añadir datos al final del archivo

Use la bandera std::ios::app (append) para agregar datos al final sin eliminar los anteriores.



std::ofstream file("log.txt", std::ios::app);file << "Nueva entrada";file.close();


2. Trabajo con directorios y sistema de archivos (C++17)



A partir de C++17, la biblioteca estándar incluye la cabecera <filesystem>, que proporciona una interfaz conveniente y multiplataforma para trabajar con el sistema de archivos. Para usarlo, agregue la bandera de compilación -std=c++17 (o superior) e incluya <filesystem>.



Verificación de existencia de un archivo o directorio

#include <iostream>#include <filesystem>namespace fs = std::filesystem;

int main() { fs::path p = "example.txt"; if (fs::exists(p)) { std::cout << "El archivo existe"; std::cout << "Tamaño: " << fs::file_size(p) << " bytes"; } else { std::cout << "Archivo no encontrado"; } return 0;}


Creación y eliminación de directorios

#include <filesystem>namespace fs = std::filesystem;

int main() { // Creación de un directorio if (fs::create_directory("my_folder")) { std::cout << "Carpeta creada"; }

// Creación de directorios anidados fs::create_directories("a/b/c");

// Eliminación de un directorio vacío fs::remove("my_folder");

// Eliminación de un directorio con todo su contenido (¡cuidado!) // fs::remove_all("a");

return 0;}


Recorrido del contenido de un directorio

#include <iostream>#include <filesystem>namespace fs = std::filesystem;

int main() { std::string path = "."; for (const auto& entry : fs::directory_iterator(path)) { if

Blogs

Book Recommendations