opendir
和 readdir
是在 C 语言中用于遍历目录的两个函数。它们通常配合使用来读取一个目录中的所有文件和子目录。下面是如何使用这两个函数的简单示例:
-
包含必要的头文件:
#include
#include #include -
打开目录: 使用
opendir
函数打开一个目录,并返回一个指向DIR
类型的指针。DIR *dir = opendir("your_directory_path"); if (dir == NULL) { perror("opendir"); return EXIT_FAILURE; }
-
读取目录内容: 使用
readdir
函数读取目录中的条目。每次调用readdir
都会返回一个指向struct dirent
的指针,该结构体包含有关文件或目录的信息。struct dirent *entry; while ((entry = readdir(dir)) != NULL) { printf("%s\n", entry->d_name); }
-
关闭目录: 使用
closedir
函数关闭已打开的目录。closedir(dir);
下面是一个完整的示例程序,演示如何使用 opendir
和 readdir
来列出指定目录中的所有文件和子目录:
#include#include #include int main() { DIR *dir; struct dirent *entry; // 打开目录 dir = opendir("your_directory_path"); if (dir == NULL) { perror("opendir"); return EXIT_FAILURE; } // 读取并打印目录中的每个条目 while ((entry = readdir(dir)) != NULL) { printf("%s\n", entry->d_name); } // 关闭目录 closedir(dir); return EXIT_SUCCESS; }
请将 "your_directory_path"
替换为你想要遍历的目录路径。这个程序会打印出该目录下的所有文件和子目录的名称。