17370845950

如何用copendir遍历目录文件

opendir 函数是 C 语言中用于打开目录的函数,通常与 readdirclosedir 函数配合使用,实现对目录下文件和子目录的遍历。以下示例演示了如何使用这三个函数遍历指定目录:

#include 
#include 
#include 
#include 

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("%s\n", entry->d_name);
    }

    // 关闭目录
    closedir(dir);

    return EXIT_SUCCESS;
}

代码首先包含必要的头文件,然后定义一个指向目录路径的指针 dir_path,此处默认为当前目录 ".",可根据需要修改为其他路径。opendir 函数打开指定目录,成功则返回 DIR 指针,失败则返回 NULL 并打印错误信息。 readdir 函数在循环中逐个读取目录项,直到返回 NULL 表示遍历结束。 每个目录项的信息存储在 dirent 结构体中,此处仅打印文件名 entry->d_name。最后,closedir 函数关闭目录,释放资源。

需要注意的是,该示例只打印文件名。若需获取文件类型、大小等更多信息,可结合 stat 函数使用。 此外,... 分别代表当前目录和父目录,通常需要在遍历时进行过滤。