在C编程中,可以使用 dirent.h 和 sys/types.h 头文件中的相关函数和结构体来获取文件夹中扩展名为.txt的文件,而不使用 opendir 和 stat。
以下是一个示例代码:
#include <stdio.h>
#include <dirent.h>
#include <sys/types.h>
#include <string.h>
int main() {
DIR *dir;
struct dirent *entry;
char *extension = ".txt";
char *folderPath = "/path/to/folder";
dir = opendir(folderPath);
if (dir == NULL) {
printf("无法打开文件夹\n");
return 1;
}
while ((entry = readdir(dir)) != NULL) {
if (entry->d_type == DT_REG) { // 判断是否为普通文件
char *filename = entry->d_name;
int len = strlen(filename);
if (len > 4 && strcmp(filename + len - 4, extension) == 0) {
printf("%s\n", filename);
}
}
}
closedir(dir);
return 0;
}
上述代码中,首先使用 opendir 函数打开指定文件夹,然后使用 readdir 函数遍历文件夹中的文件。通过判断 entry->d_type 是否为 DT_REG,可以确定当前遍历到的是普通文件。然后,使用 strcmp 函数比较文件名的后缀是否为 ".txt",如果是,则打印文件名。
请注意,上述代码仅适用于 Linux 系统。如果在其他操作系统上运行,可能需要进行相应的修改。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云