opendir 函数是 C 语言中用于打开目录的函数,通常与 readdir 和 closedir 函数配合使用,实现对目录下文件和子目录的遍历。以下示例演示了如何使用这三个函数遍历指定目录:
#include <stdio.h> #include <stdlib.h> #include <dirent.h> #include <string.h> int main() { DIR *dir; struct dirent *entry; char *dir_path = "."; // 遍历当前目录,可修改为其他路径 // 打开目录 dir = opendir(dir_path); if (dir == NULL) { perror("opendir"); return EXIT_FAILURE; } // 遍历目录内容 while ((entry = readdir(dir)) != NULL) { printf("%sn", entry->d_name); } // 关闭目录 closedir(dir); return EXIT_SUCCESS; }
代码首先包含必要的头文件,然后定义一个指向目录路径的指针 dir_path,此处默认为当前目录 “.”,可根据需要修改为其他路径。opendir 函数打开指定目录,成功则返回 DIR 指针,失败则返回 NULL 并打印错误信息。 readdir 函数在循环中逐个读取目录项,直到返回 NULL 表示遍历结束。 每个目录项的信息存储在 dirent 结构体中,此处仅打印文件名 entry->d_name。最后,closedir 函数关闭目录,释放资源。
需要注意的是,该示例只打印文件名。若需获取文件类型、大小等更多信息,可结合 stat 函数使用。 此外,. 和 .. 分别代表当前目录和父目录,通常需要在遍历时进行过滤。