C语言批量遍历多个文件夹内文件
时间: 2023-08-06 12:03:21 浏览: 101
你可以使用C语言中的文件操作函数来遍历多个文件夹内的文件。具体步骤如下:
1. 使用 opendir 函数打开需要遍历的文件夹,获取文件夹的指针。
2. 使用 readdir 函数读取文件夹中的文件,获取文件的指针。
3. 对于每个文件,可以使用 stat 函数获取文件的信息,如文件名、文件大小、修改时间等。
4. 如果当前文件是一个文件夹,可以使用递归的方式进入该文件夹,重复步骤 2-4。
5. 使用 closedir 函数关闭打开的文件夹指针。
下面是一个简单的示例代码,可以遍历指定文件夹内的所有文件:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <dirent.h>
void traverse_dir(const char *path) {
DIR *dir;
struct dirent *entry;
struct stat info;
if ((dir = opendir(path)) == NULL) {
perror("opendir");
return;
}
while ((entry = readdir(dir)) != NULL) {
char full_path[1024];
sprintf(full_path, "%s/%s", path, entry->d_name);
if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) {
continue;
}
if (stat(full_path, &info) != 0) {
perror("stat");
continue;
}
if (S_ISDIR(info.st_mode)) {
traverse_dir(full_path);
} else {
printf("%s\n", full_path);
}
}
closedir(dir);
}
int main(int argc, char *argv[]) {
if (argc != 2) {
fprintf(stderr, "Usage: %s <directory>\n", argv[0]);
exit(EXIT_FAILURE);
}
traverse_dir(argv[1]);
return 0;
}
```
使用方式为:`./a.out <directory>`,其中 `<directory>` 是需要遍历的文件夹路径。
阅读全文