c语言遍历目录的方法是什么

avatar
作者
猴君
阅读量:0

在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("无法打开目录\n");         return 1;     }      // 逐个读取目录项     while ((ent = readdir(dir)) != NULL) {         // 忽略当前目录(.)和上级目录(..)         if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0) {             continue;         }          // 输出目录项名称         printf("%s\n", 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\n", subdir);         }     }      // 关闭目录     closedir(dir);      return 0; } 

注意:

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!