如何列出当前目录下的所有.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)。
我知道如何通过打开目录 "./"
然后使用 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)。