趣文网 > 作文大全

C语言获取目录下所有文件名

2020-12-02 16:00:01
相关推荐

C语言获取指定目录文件名,其主要运用一个结构体存取文件信息_finddata_t,另外还需要_findfirst()、_findnext()和_fineclose()三个函数的搭配使用,定义都在#include 这个头文件中。

_finddata_t结构:

unsigned atrrib:文件属性的存储位置。它存储一个unsigned单元,用于表示文件的属性。文件属性是用位表示的,主要有以下一些:_A_ARCH(存档)、 _A_HIDDEN(隐藏)、_A_NORMAL(正常)、_A_RDONLY(只读)、_A_SUBDIR(文件夹)、_A_SYSTEM(系统)。这些都是在中定义的宏,可以直接使用,而本身的意义其实是一个无符号整型(只不过这个整型应该是2的几次幂,从而保证只有一位为 1,而其他位为0)。既然是位表示,那么当一个文件有多个属性时,它往往是通过位或的方式,来得到几个属性的综合。例如只读+隐藏+系统属性,应该为:_A_HIDDEN | _A_RDONLY | _A_SYSTEM 。

time_t time_create:这里的time_t是一个变量类型,实际上就是长整形变量 long int,用来保存从1970年1月1日0时0分0秒到现在时刻的秒数

time_t time_access:文件最后一次被访问的时间。

time_t time_write:文件最后一次被修改的时间。

_fsize_t size:文件的大小(字节数表示)。

char name[_MAX_FNAME]:文件的文件名。这里的_MAX_FNAME是一个常量宏,它在头文件中被定义,表示的是文件名的最大长度。

_findfirst()

long _RTLENTRY _EXPFUNC _findfirst(char *, struct _finddata_t *);

返回值:如果查找成功的话,将返回一个long型的唯一的查找用的句柄。这个句柄将会在_findnext函数中被使用。失败返回-1.

参数:

第一个参数char *:标明文件的字符串,可支持通配符。比如:*.c,则表示当前文件夹下的所有后缀为C的文件。

第二个参数_finddata_t *:这里就是用来存放文件信息的结构体的指针。这个结构体必须在调用此函数前声明,不过不用初始化,只要分配了内存空间就可以了。函数成功后,函数会把找到的文件的信息放入这个结构体所分配的内存空间中。

findnext()

long _RTLENTRY _EXPFUNC _findnext(long, struct _finddata_t *);

返回值:若成功返回0,否则返回-1。

参数:

第一个参数 long:即由_findfirst函数返回回来的句柄。

第二个参数 _finddata_t :文件信息结构体的指针。找到文件后,函数将该文件信息放入此结构体中。

_fineclose()

int _RTLENTRY _EXPFUNC _findclose(long);

返回值:成功返回0,失败返回-1。

参数:

第一个参数long:_findfirst函数返回回来的句柄。

_findclose释放由_findfirst分配的内存。_findclose停止一个_findfirst/_findnext序列。_findclose在16位的操作系统中没有用处,但在32位系统中是需要的,所以为了最大的_findfirst/_findnext序列完成的可能性应该调用_findclose结束。

以下是具体实现代码:

运行截图:

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

大爱真情作文 高考好的作文题目 写景色的作文400字 新学期新规划作文 我们的传统节日作文 家乡的景色作文300字 我最爱吃的食物作文 全国作文加盟 三年级游记作文300字 家乡的春节六年级作文 五年级上册写人作文 去北京旅游的英语作文 环境保护作文600字 我最尊敬的人英语作文 我的烦恼作文450字 勇气作文600字初中 雷锋在我心中作文 四年级上册作文100字 最好的自己作文800字 把古诗改写成作文 一件难忘的事300字作文 跳绳比赛作文300字 生活需要自信作文 小狐狸哭了作文 写人的作文怎么写400字 爱的旋律作文 生于忧患死于安乐作文 这也是一种幸福作文 四年级作文我学会了什么 英语作文我最喜欢的电影