我知道如何通过打开目录"./"
然后使用readdir
来读取当前目录中的所有文件。但是,如何仅列出.txt
个文件或任何其他特定扩展名?
DIR *p;
struct dirent *pp;
p = opendir ("./");
if (p != NULL)
{
while ((pp = readdir (p))!=NULL)
puts (pp->d_name);
(void) closedir (pp);
}
答案 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 *
。