Mostrar el directorio actual utilizando archivos

C++C++Beginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá a escribir un programa en C++ para mostrar el directorio o carpeta actual utilizando archivos. Implementará dos métodos diferentes para mostrar la lista de archivos y carpetas en el directorio actual.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/StandardLibraryGroup(["Standard Library"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp/ControlFlowGroup -.-> cpp/conditions("Conditions") cpp/ControlFlowGroup -.-> cpp/for_loop("For Loop") cpp/ControlFlowGroup -.-> cpp/while_loop("While Loop") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") cpp/StandardLibraryGroup -.-> cpp/standard_containers("Standard Containers") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/conditions -.-> lab-96185{{"Mostrar el directorio actual utilizando archivos"}} cpp/for_loop -.-> lab-96185{{"Mostrar el directorio actual utilizando archivos"}} cpp/while_loop -.-> lab-96185{{"Mostrar el directorio actual utilizando archivos"}} cpp/output -.-> lab-96185{{"Mostrar el directorio actual utilizando archivos"}} cpp/files -.-> lab-96185{{"Mostrar el directorio actual utilizando archivos"}} cpp/standard_containers -.-> lab-96185{{"Mostrar el directorio actual utilizando archivos"}} cpp/code_formatting -.-> lab-96185{{"Mostrar el directorio actual utilizando archivos"}} end

Crear un archivo de C++

Cree un archivo de C++ llamado main.cpp en el directorio ~/project. Puede utilizar cualquier editor de código o IDE para crear el archivo.

touch ~/project/main.cpp

Incluir las bibliotecas necesarias

En este paso, debe incluir las bibliotecas necesarias para el programa. Estas bibliotecas son necesarias para manipular archivos y directorios en C++. Utilice el siguiente código para incluir las bibliotecas:

#include<iostream>
#include<dirent.h> // Encabezado para operaciones de directorio
using namespace std;

Implementar el primer método

En este paso, implementaremos el primer método para mostrar la lista de archivos y carpetas en el directorio actual. Utilice el siguiente código para mostrar la lista utilizando un bucle for:

int main()
{
    struct dirent *d; // Puntero para la entrada de directorio
    DIR *dr; // Puntero para el directorio
    dr = opendir(".");
    if(dr!=NULL)
    {
        cout<<"Lista de archivos y carpetas:\n";
        for(d=readdir(dr); d!=NULL; d=readdir(dr))
        {
            cout<<d->d_name<<endl; // Imprime el nombre del archivo o carpeta
        }
        closedir(dr);
    }
    else
        cout<<"\nError ocurrido!";
    cout<<endl;
    return 0;
}

Implementar el segundo método

En este paso, implementaremos el segundo método para mostrar la lista de archivos y carpetas en el directorio actual. Utilice el siguiente código para mostrar la lista utilizando un bucle while:

int main()
{
    struct dirent *d; // Puntero para la entrada de directorio
    DIR *dr; // Puntero para el directorio
    dr = opendir(".");
    if(dr!=NULL)
    {
        cout<<"Lista de archivos y carpetas:\n";
        while((d=readdir(dr))!=NULL)
            cout<<d->d_name<<endl; // Imprime el nombre del archivo o carpeta
        closedir(dr);
    }
    else
        cout<<"\nError ocurrido!";
    cout<<endl;
    return 0;
}

Compilar y ejecutar el programa

En este paso, debe compilar y ejecutar el archivo main.cpp. Utilice el siguiente comando para compilar y ejecutar el programa:

g++ main.cpp -o main &&./main

Código completo de main.cpp

#include<iostream>
#include<dirent.h> // Encabezado para operaciones de directorio
using namespace std;

// Método 1
int main()
{
    struct dirent *d; // Puntero para la entrada de directorio
    DIR *dr; // Puntero para el directorio
    dr = opendir(".");
    if(dr!=NULL)
    {
        cout<<"Lista de archivos y carpetas:\n";
        for(d=readdir(dr); d!=NULL; d=readdir(dr))
        {
            cout<<d->d_name<<endl; // Imprime el nombre del archivo o carpeta
        }
        closedir(dr);
    }
    else
        cout<<"\nError ocurrido!";
    cout<<endl;

    // Método 2
    dr = opendir(".");
    if(dr!=NULL)
    {
        cout<<"Lista de archivos y carpetas:\n";
        while((d=readdir(dr))!=NULL)
            cout<<d->d_name<<endl; // Imprime el nombre del archivo o carpeta
        closedir(dr);
    }
    else
        cout<<"\nError ocurrido!";
    cout<<endl;
    return 0;
}

Resumen

En este laboratorio, has aprendido cómo escribir un programa en C++ para mostrar el directorio o carpeta actual utilizando archivos. Has implementado dos métodos diferentes para mostrar la lista de archivos y carpetas en el directorio actual. También has aprendido cómo compilar y ejecutar un programa en C++ en la terminal de Ubuntu.