我正在编写一个程序,我需要打印给定文件夹中的所有文件并存储文件的内容,以便将其与另一个字符串进行比较。 我现在拥有的是:
while ((ent = readdir(dir)) != NULL)
{
if (!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, ".."))
{
// do nothing (straight logic)
}
else {
file_name = ent->d_name;
printf("%s\n", file_name);
file_name = ent->d_name;
printf("%s\n", file_name);
char *fd = file_name;
struct stat *buf;
buf = malloc(sizeof(struct stat));
stat(fd, buf);
int size = buf->st_size;
printf("%d", size);
}
}
编辑: 我现在的问题是它打印尺寸为负
答案 0 :(得分:0)
strstr()
查看文件名是否以.png stat()
获取文件大小malloc()
分配足够大小的缓冲区以读取文件fopen()
和fread()
将整个文件读入缓冲区memcmp()
将文件内容与您已有的字符串进行比较作为替代方案,您可以使用glob()
代替readdir()
,并使用strstr
手动匹配“.png”。