C语言实现递归遍历当前文件夹下的所有文件
时间: 2023-10-04 18:06:04 浏览: 357
可以使用C语言中的`opendir`和`readdir`函数实现遍历当前文件夹下的所有文件。具体实现代码如下:
```c
#include <stdio.h>
#include <string.h>
#include <dirent.h>
void traverse_dir(char *dir_path) {
DIR *dir;
struct dirent *entry;
dir = opendir(dir_path);
if (dir == NULL) {
fprintf(stderr, "Failed to open directory\n");
return;
}
while ((entry = readdir(dir)) != NULL) {
if (entry->d_type == DT_DIR) {
// Ignore "." and ".." directories
if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) {
continue;
}
// Recursively traverse subdirectory
char sub_dir_path[256];
sprintf(sub_dir_path, "%s/%s", dir_path, entry->d_name);
traverse_dir(sub_dir_path);
} else {
printf("%s/%s\n", dir_path, entry->d_name);
}
}
closedir(dir);
}
int main(int argc, char **argv) {
if (argc != 2) {
printf("Usage: %s DIRECTORY\n", argv[0]);
return 1;
}
traverse_dir(argv[1]);
return 0;
}
```
这个程序接受一个参数,即要遍历的目录路径,会递归地遍历该目录下的所有文件和子目录,并输出它们的路径。
阅读全文