C语言|??如何用C语言读取某个目录下的文件名??

前言 我们经常需要读取一个目录下的所有文件名,所以一下介绍如何读取一个文件下的目录,下面我演示一下如何读取下面这个目录的文件名
C语言|??如何用C语言读取某个目录下的文件名??
文章图片

这些.mp3结尾的文件存在music目录下,我们把一一把这些文件名读取出来
1.打开文件目录

#include #include DIR *opendir(const char *name); 功能:打开一个目录 参数: name:目录名 返回值: 成功:返回指向该目录结构体指针 失败:NULL

2.读取目录
#include struct dirent *readdir(DIR *dirp); 功能: 读取目录 参数: dirp:opendir的返回值 返回值: 成功:目录结构体指针 失败:NULL

打开目录之后就可以通过这个结构体读取目录了。
结构体说明:
struct dirent {ino_t d_ino; // 此目录进入点的inode off_t d_off; // 目录文件开头至此目录进入点的位移 signed short int d_reclen; // d_name 的长度, 不包含NULL 字符 unsigned char d_type; // d_type 所指的文件类型 char d_name[256]; // 文件名 }

3.关闭目录
#include #include int closedir(DIR *dirp); 功能:关闭目录 参数: dirp:opendi r返回的指针 返回值:成功:0 失败:-1

完整代码演示 【C语言|??如何用C语言读取某个目录下的文件名??】读取music目录下的.mp3类型的文件名
//读取歌词的列表 void read_lryic(char *path) { DIR *dir = opendir(path); //打开目录文件 struct dirent *entry; while((entry = readdir(dir))!=0) {if(strstr(entry->d_name,".mp3")) {printf("%s\n", entry->d_name); } } }

    推荐阅读