使用 opendir 遍历目录的基本步骤如下:
包含头文件:
<dirent.h> 头文件,以便使用与目录操作相关的函数。打开目录:
opendir 函数打开你想要遍历的目录。该函数接受一个目录路径作为参数,并返回一个指向 DIR 类型的指针。如果无法打开目录,它将返回 NULL。检查目录是否成功打开:
opendir 的返回值是否为 NULL。如果是,则处理错误(例如,打印错误消息并退出程序)。读取目录项:
readdir 函数从目录中读取条目。每次调用 readdir 都会返回一个指向 dirent 结构的指针,该结构包含有关目录项的信息。当没有更多的目录项时,readdir 返回 NULL。处理目录项:
dirent 结构中的字段,例如 d_name,来获取目录项的名称。关闭目录:
closedir 函数关闭目录。这释放了与打开的目录关联的资源。下面是一个简单的示例代码,演示如何使用 opendir 和 readdir 遍历目录:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
int main() {
DIR *dir;
struct dirent *entry;
// 打开目录
dir = opendir(".");
if (dir == NULL) {
perror("opendir");
return EXIT_FAILURE;
}
// 读取目录项
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
// 关闭目录
closedir(dir);
return EXIT_SUCCESS;
}
在这个例子中,程序打开当前目录(用 "." 表示),然后遍历并打印出该目录中的所有文件和子目录的名称。最后,它关闭目录。