当我更改列出文件的路径时出现问题
问题描述:
我试图从文件夹中获取所有文件的大小。问题是我从当前目录更改路径,它找不到文件的大小。它仅适用于当前目录,对于项目所在的目录。如果我wirte d = opendir(“。”)正在工作,但只有这样,我想改变路径。由于 代码:当我更改列出文件的路径时出现问题
#include <stdio.h>
#include <dirent.h>
#include <sys/stat.h>
void main()
{
DIR *d;
struct dirent *de;
struct stat buf;
int exists;
int total_size;
d = opendir("C:\\MinGWStudio\\Templates");
if (d == NULL) {
perror("prsize");
exit(1);
}
total_size = 0;
for (de = readdir(d); de != NULL; de = readdir(d)) {
exists = stat(de->d_name, &buf);
if (exists < 0) {
fprintf(stderr, "Couldn't stat %s\n", de->d_name);
}
else {
printf("%s ", de->d_name);
printf("%d \n", buf.st_size);
total_size += buf.st_size;
}
}
closedir(d);
printf("%d\n", total_size);
}
答
是不带路径的文件名。您需要提供stat()
文件的绝对路径或相对路径。另一个选择是将当前目录更改为您正在阅读的目录。
我在windows上工作 – Sebi95
您不能在C++的全局命名空间中使用'void main()'。使用'int main(void)'。 – MikeCAT