在C语言中,可以使用opendir
、readdir
和closedir
等函数来遍历目录。下面是一个简单的示例代码,可以遍历指定目录下的所有文件和子目录:
#include#include #include 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; }
注意:
- 需要包含头文件
和
,以及使用-ldir
选项链接库libdir
。 readdir
函数会返回目录中的每个目录项,包括普通文件、子目录、特殊目录(“.“和”…”),可以通过d_type
成员判断目录项类型。- 可以使用
snprintf
函数构建子目录的路径,实现递归遍历子目录。 - 需要替换代码中的"目录路径"为实际的目录路径。