readdir 是一个用于读取目录内容的函数,通常在 C 语言中使用。要使用 readdir 实现目录遍历,你需要遵循以下步骤:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
DIR *dir = opendir("path/to/directory");
if (dir == NULL) {
perror("opendir");
exit(EXIT_FAILURE);
}
将 “path/to/directory” 替换为你要遍历的目录路径。
使用 readdir 函数读取目录中的每个条目。当 readdir 返回 NULL 时,表示已经到达目录末尾。
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
// 处理目录条目
}
在循环中,你可以使用 entry->d_name 获取目录条目的名称。你可以根据需要对条目进行处理,例如打印名称或检查特定文件类型。
printf("Entry: %s\n", entry->d_name);
在完成目录遍历后,使用 closedir 函数关闭目录。
closedir(dir);
将以上代码片段组合在一起,你将得到一个简单的目录遍历程序:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int main() {
DIR *dir = opendir("path/to/directory");
if (dir == NULL) {
perror("opendir");
exit(EXIT_FAILURE);
}
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
printf("Entry: %s\n", entry->d_name);
}
closedir(dir);
return 0;
}
编译并运行此程序,它将打印指定目录中的所有文件和子目录。