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

how to list all the .txt files in the current directory?

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

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

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

    (void) closedir (pp);
  }

打印前请检查文件名。

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

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