用C语言实现统计一个目录下所有普通文件的大小总和
时间: 2024-02-18 13:02:34 浏览: 29
可以使用C语言中的文件操作函数来实现统计一个目录下所有普通文件的大小总和。具体步骤如下:
1.打开目录,使用opendir函数打开目录,获取目录的指针。
2.遍历目录,使用readdir函数遍历目录下所有文件和目录,判断是否为普通文件。
3.统计文件大小,如果是普通文件,则使用stat函数获取文件信息,获取文件大小,并累加到总大小中。
4.关闭目录,使用closedir函数关闭目录。
下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <sys/stat.h>
int main(int argc, char *argv[]) {
if (argc < 2) {
printf("Usage: %s directory\n", argv[0]);
return 1;
}
DIR *dir;
struct dirent *entry;
struct stat statbuf;
long long total_size = 0;
if ((dir = opendir(argv[1])) == NULL) {
perror("opendir");
return 1;
}
while ((entry = readdir(dir)) != NULL) {
char path[1024];
snprintf(path, sizeof(path), "%s/%s", argv[1], entry->d_name);
if (stat(path, &statbuf) == -1) {
perror("stat");
continue;
}
if (S_ISREG(statbuf.st_mode)) {
total_size += statbuf.st_size;
}
}
printf("Total size: %lld bytes\n", total_size);
closedir(dir);
return 0;
}
```
在命令行中输入以下命令,即可统计目录下所有普通文件的大小总和:
```
$ ./a.out directory
```
其中,directory为目标目录的路径。