如何列出当前目录中的所有.txt文件?

时间:2015-05-13 13:40:11

标签: c file posix

我知道如何通过打开目录"./"然后使用readdir来读取当前目录中的所有文件。但是,如何仅列出.txt个文件或任何其他特定扩展名?

  DIR *p;
  struct dirent *pp;     
  p = opendir ("./");

  if (p != NULL)
  {
    while ((pp = readdir (p))!=NULL)
      puts (pp->d_name);

    (void) closedir (pp);
  }

1 个答案:

答案 0 :(得分:2)

在打印之前,请检查文件名。

  DIR *p;
  struct dirent *pp;     
  p = opendir ("./");

  if (p != NULL)
  {
    while ((pp = readdir (p))!=NULL) {
      int length = strlen(pp->d_name);
      if (strncmp(pp->d_name + length - 4, ".txt", 4) == 0) {
          puts (pp->d_name);
      }
    }

    (void) closedir (p);
  }

顺便说一下,您还在closedir()(pp)而不是dirent(p)上致电DIR *