c语言实现linux目录遍历
时间: 2024-02-26 11:50:38 浏览: 112
易语言非子程序嵌套实现遍历目录源码.7z
在C语言中,可以使用系统调用函数来实现Linux目录遍历。以下是一个简单的示例代码,演示了如何使用C语言实现Linux目录遍历:
```c
#include <stdio.h>
#include <dirent.h>
void traverseDirectory(const char *path) {
DIR *dir;
struct dirent *entry;
// 打开目录
dir = opendir(path);
if (dir == NULL) {
perror("opendir");
return;
}
// 读取目录中的文件和子目录
while ((entry = readdir(dir)) != NULL) {
// 忽略当前目录和上级目录
if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) {
continue;
}
// 输出文件名或子目录名
printf("%s\n", entry->d_name);
// 如果是目录,则递归遍历
if (entry->d_type == DT_DIR) {
char newPath[1024];
snprintf(newPath, sizeof(newPath), "%s/%s", path, entry->d_name);
traverseDirectory(newPath);
}
}
// 关闭目录
closedir(dir);
}
int main() {
const char *path = "/path/to/directory"; // 替换为你要遍历的目录路径
traverseDirectory(path);
return 0;
}
```
上述代码中,`traverseDirectory` 函数用于遍历指定路径下的所有文件和子目录。它首先打开目录,然后使用 `readdir` 函数读取目录中的文件和子目录。如果遇到子目录,则使用递归方式继续遍历子目录。最后,关闭目录。
请注意,上述代码仅为简单示例,没有进行错误处理和路径长度限制。在实际使用中,应该添加适当的错误处理和路径长度检查。
阅读全文