我试图通过使用 dirent.h header 获取目录中文件的大小。然而
stat(ent->d_name, &statbuf)
总是返回-1,我无法正确获取大小。可能是什么原因?
最佳答案
d_name
包含该目录中文件的名称。 stat
需要一个包含目录部分的名称,除非它是当前目录。
创建一个临时字符串,其中包含 d_name
文件的完整路径。
编辑:样本
char const * DirName = "/tmp";
....
char * FullName = (char*) malloc(strlen(DirName) + strlen(ent->d_name) + 2);
strcpy(FullName, DirName);
strcat(FullName, "/");
strcat(FullName, ent->d_name);
stat(FullName, &statbuf);
free(FullName);
关于c - 获取目录中文件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5514842/