标签导航:

如何用copendir遍历目录

本文介绍如何利用 copendir 函数遍历目录。copendir 函数用于打开目录并返回一个 DIR 指针,方便访问目录中的文件和子目录。以下示例演示了其基本用法:

#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>

int main() {
    DIR *dir;
    struct dirent *entry;

    // 打开当前目录
    dir = opendir(".");
    if (dir == NULL) {
        perror("opendir failed");
        return EXIT_FAILURE;
    }

    // 循环读取目录项
    while ((entry = readdir(dir)) != NULL) {
        printf("文件名: %s
", entry->d_name);
    }

    // 关闭目录
    closedir(dir);

    return EXIT_SUCCESS;
}

代码首先包含必要的头文件,然后使用 opendir(".") 打开当前目录。 opendir 函数成功返回一个 DIR 指针,否则返回 NULL 并打印错误信息。 readdir 函数循环读取目录项,每次返回一个 dirent 结构体指针,包含文件名等信息。 循环结束条件是 readdir 返回 NULL,表示已读取所有目录项。最后,closedir 关闭目录,释放资源。

请注意,实际应用中需要添加错误处理和更完善的逻辑,例如处理子目录(可能需要递归调用)以及区分文件和目录等。 本例仅展示了 copendir 的基本使用方法。