新闻资讯

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻资讯列表

c语言遍历目录的有哪些方法,c语言中遍历数组

发布时间:2023-11-07 08:52:30

c语言遍历目录的有哪些方法

在C语言中,可使用opendirreaddirclosedir等函数来遍历目录。下面是一个简单的示例代码,可以遍历指定目录下的所有文件和子目录:

#include <stdio.h>
#include <dirent.h>
#include <sys/types.h>

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

    // 打开目录
    dir = opendir("目录路径");
    if (dir == NULL) {
        printf("没法打开目录
");
        return 1;
    }

    // 逐一读取目录项
    while ((ent = readdir(dir)) != NULL) {
        // 疏忽当前目录(.)和上级目录(..)
        if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0) {
            continue;
        }

        // 输出目录项名称
        printf("%s
", ent->d_name);

        // 判断目录项类型
        if (ent->d_type == DT_DIR) {
            // 如果是子目录,则可以递归遍历子目录
            // 例如:递归遍历子目录 dir/subdir
            char subdir[256];
            snprintf(subdir, sizeof(subdir), "%s/%s", "目录路径", ent->d_name);
            printf("子目录:%s
", subdir);
        }
    }

    // 关闭目录
    closedir(dir);

    return 0;
}

注意:

  1. 需要包括头文件<dirent.h><sys/types.h>,和使用-ldir选项链接库libdir
  2. readdir函数会返回目录中的每一个目录项,包括普通文件、子目录、特殊目录(“.“和”…”),可以通过d_type成员判断目录项类型。
  3. 可使用snprintf函数构建子目录的路径,实现递归遍历子目录。
  4. 需要替换代码中的"目录路径"为实际的目录路径。