C语言通过dirent 获取文件名称,文件后缀名
时间: 2024-02-07 07:03:52 浏览: 188
通过 dirent.h 库函数,可以使用 dirent 结构体来获取文件名称和文件后缀名。dirent 结构体的 d_name 成员变量就是文件名称,可以使用 strchr() 函数来查找最后一个 '.' 的位置,然后再根据该位置来获取文件后缀名。
下面是一个示例代码:
```c
#include <stdio.h>
#include <dirent.h>
#include <string.h>
int main() {
DIR *dir;
struct dirent *entry;
dir = opendir(".");
if (dir == NULL) {
perror("opendir error");
return -1;
}
while ((entry = readdir(dir)) != NULL) {
// 判断是否为文件
if (entry->d_type == DT_REG) {
// 获取文件名称
printf("File name: %s\n", entry->d_name);
// 获取文件后缀名
char *dot = strrchr(entry->d_name, '.');
if (dot && dot != entry->d_name) {
printf("File extension: %s\n", dot + 1);
}
}
}
closedir(dir);
return 0;
}
```
该示例代码可以遍历当前目录下所有文件,输出文件名称和文件后缀名。需要注意的是,该方法只能获取文件后缀名,无法获取文件类型。
阅读全文