C语言:读取文件目录下所有特定类型的文件名

C语言:读取文件目录下所有特定类型的文件名


一、实现目标

  输入:所要读取的文件目录和文件类型
  输出:在此目录下,所有符合类型的文件的文件名。

二、实现背景

  在VS中使用CMake编译openCV生成库文件后,需要手动添加附加依赖项,但lib文件太多,不想手动一个一个添加,而希望能够自动生成一个txt文件,该文件包含此目录下所有lib类型文件的文件名。

三、实现代码

// 操作系统:windows 7
// 编译软件:Dev-C++
// 编程语言:c语言

#include <stdio.h>
#include <io.h>

// 使用前需要修改 catalog, type
char catalog[150] = "D:\\opencv345\\opencv\\build\\x86\\vc15\\staticlib";  //文件目录
char type[20] = "lib" ;  //文件类型
 
 
int main()
{
	FILE *fp;
	long handle;    //句柄
	struct _finddata_t fileinfo;   //文件信息结构体
	
	char save[150];  //保存文件地址 
	strcpy(save, catalog);
	strcat(save, "\\\\result.txt"); // save = D:\\opencv345\\opencv\\build\\x86\\vc15\\staticlib\\result.txt
	
	char search[150];  //欲查找的文件,支持通配符
	strcpy(search, catalog);
	strcat(search, "\\\\*.");
	strcat(search, type);  // search = D:\\opencv345\\opencv\\build\\x86\\vc15\\staticlib\\*.lib
	
	fp = fopen(save, "w+");  // 打开文件 
	if (fp==0) 
	{
		printf("文件打开失败!\n");
		return 0;
	}
	
	handle=_findfirst(search,&fileinfo);    //第一次查找
	if(-1==handle)
	{
		fclose(fp);
		printf("未找到所需文件。\n");
		return -1;
	}
	
	fprintf(fp,"%s\n",fileinfo.name);   //打印出找到的文件的文件名
	while(!_findnext(handle,&fileinfo)) //循环查找其他符合的文件,直到找不到其他的为止
	{
		fprintf(fp,"%s\n",fileinfo.name);
	}
	_findclose(handle); //关闭句柄
	
	printf("查找成功。\n");
	fclose(fp);
	return 0;

}

四、运行结果


五、参考资料

C语言获取文件夹内所有文件名并打印到txt中

  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值