本文共 1180 字,大约阅读时间需要 3 分钟。
在C/C++中,想要遍历文件系统中的目录,可以通过使用标准库函数来实现。本文将详细介绍如何使用C/C++编写一个简单的目录遍历程序。
首先,我们需要包含必要的头文件。以下是需要的头文件:
#include#include #include
接下来,我们编写一个名为`main`的函数。函数的主要任务是打开指定目录,读取其中的目录项,并打印每个目录项的名字。
int main(int ac, char *av[]) { DIR *dir = NULL; struct dirent *item = NULL; // 打开指定目录 dir = opendir(av[1]); if (dir == NULL) { printf("无法打开目录:%s\n", av[1]); return 1; } // 遍历目录项 while ((item = readdir(dir)) != NULL) { // 打印目录项的名字 printf("文件名:%s\n", item->d_name); } // 关闭目录 closedir(dir); return 0;}
编写好代码后,需要使用编译器将其编译成可执行文件。以下是编译命令:
gcc -o main main.c
运行程序时,需要指定要遍历的目录路径。例如:
./main /path/to/directory
运行结果将显示遍历到的目录项名。例如:
./main /home/test
输出示例:
文件名:20170605文件名:20170522文件名:SR200550文件名:main文件名:rsa.json文件名:.emacs...
键字解释:
DIR *dir;
:定义了一个指向DIR类型的指针变量dir
,用于存储目录句柄。struct dirent *item;
:定义了一个指向dirent
类型的指针变量item
,用于存储遍历到的目录项的信息。dir = opendir(av[1]);
:打开指定路径的目录,返回DIR类型的指针dir
。if (dir == NULL)
:检查dir
是否为NULL,如果为NULL,表示无法打开目录,输出错误信息。while ((item = readdir(dir)) != NULL)
:读取目录中的下一个目录项,直到读取完所有目录项。printf("文件名:%s\n", item->d_name);
:打印目录项的名字。closedir(dir);
:关闭已遍历的目录,释放资源。return 0;
:程序成功执行,返回0。转载地址:http://ttgs.baihongyu.com/