扫描c中文件夹中的每个文件

时间:2017-05-19 20:37:42

标签: c file

我正在编写一个程序,我需要打印给定文件夹中的所有文件并存储文件的内容,以便将其与另一个字符串进行比较。 我现在拥有的是:

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);
            }
        }

编辑: 我现在的问题是它打印尺寸为负

1 个答案:

答案 0 :(得分:0)

  1. 使用strstr()查看文件名是否以.png
  2. 结尾
  3. 对于不匹配的文件,请跳至下一个文件
  4. 对于匹配的文件,请使用stat()获取文件大小
  5. 使用malloc()分配足够大小的缓冲区以读取文件
  6. 使用fopen()fread()将整个文件读入缓冲区
  7. 使用memcmp()将文件内容与您已有的字符串进行比较
  8. 作为替代方案,您可以使用glob()代替readdir(),并使用strstr手动匹配“.png”。