使用文件显示当前目录

C++C++Beginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何编写一个 C++ 程序,使用文件操作来显示当前目录或文件夹的内容。你将实现两种不同的方法来显示当前目录中的文件和文件夹列表。


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{{"使用文件显示当前目录"}} cpp/for_loop -.-> lab-96185{{"使用文件显示当前目录"}} cpp/while_loop -.-> lab-96185{{"使用文件显示当前目录"}} cpp/output -.-> lab-96185{{"使用文件显示当前目录"}} cpp/files -.-> lab-96185{{"使用文件显示当前目录"}} cpp/standard_containers -.-> lab-96185{{"使用文件显示当前目录"}} cpp/code_formatting -.-> lab-96185{{"使用文件显示当前目录"}} end

创建 C++ 文件

~/project 目录下创建一个名为 main.cpp 的 C++ 文件。你可以使用任何代码编辑器或 IDE 来创建该文件。

touch ~/project/main.cpp

包含所需的库

在这一步中,你需要包含程序所需的库。这些库是 C++ 中操作文件和目录所必需的。使用以下代码来包含这些库:

#include<iostream>
#include<dirent.h> // 用于目录操作的头文件
using namespace std;

实现第一种方法

在这一步中,我们将实现第一种方法来显示当前目录中的文件和文件夹列表。使用以下代码通过 for 循环来显示列表:

int main()
{
    struct dirent *d; // 目录条目的指针
    DIR *dr; // 目录的指针
    dr = opendir(".");
    if(dr!=NULL)
    {
        cout<<"List of Files & Folders:\n";
        for(d=readdir(dr); d!=NULL; d=readdir(dr))
        {
            cout<<d->d_name<<endl; // 打印文件或文件夹的名称
        }
        closedir(dr);
    }
    else
        cout<<"\nError Occurred!";
    cout<<endl;
    return 0;
}

实现第二种方法

在这一步中,我们将实现第二种方法来显示当前目录中的文件和文件夹列表。使用以下代码通过 while 循环来显示列表:

int main()
{
    struct dirent *d; // 目录条目的指针
    DIR *dr; // 目录的指针
    dr = opendir(".");
    if(dr!=NULL)
    {
        cout<<"List of Files & Folders:\n";
        while((d=readdir(dr))!=NULL)
            cout<<d->d_name<<endl; // 打印文件或文件夹的名称
        closedir(dr);
    }
    else
        cout<<"\nError Occurred!";
    cout<<endl;
    return 0;
}

编译并运行程序

在这一步中,你需要编译并运行 main.cpp 文件。使用以下命令来编译并运行程序:

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

main.cpp 的完整代码

#include<iostream>
#include<dirent.h> // 用于目录操作的头文件
using namespace std;

// 方法 1
int main()
{
    struct dirent *d; // 目录条目的指针
    DIR *dr; // 目录的指针
    dr = opendir(".");
    if(dr!=NULL)
    {
        cout<<"List of Files & Folders:\n";
        for(d=readdir(dr); d!=NULL; d=readdir(dr))
        {
            cout<<d->d_name<<endl; // 打印文件或文件夹的名称
        }
        closedir(dr);
    }
    else
        cout<<"\nError Occurred!";
    cout<<endl;

    // 方法 2
    dr = opendir(".");
    if(dr!=NULL)
    {
        cout<<"List of Files & Folders:\n";
        while((d=readdir(dr))!=NULL)
            cout<<d->d_name<<endl; // 打印文件或文件夹的名称
        closedir(dr);
    }
    else
        cout<<"\nError Occurred!";
    cout<<endl;
    return 0;
}

总结

在本实验中,你学习了如何编写一个 C++ 程序,使用文件操作来显示当前目录或文件夹的内容。你实现了两种不同的方法来显示当前目录中的文件和文件夹列表。你还学习了如何在 Ubuntu 终端中编译和运行 C++ 程序。