// FindFile.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <io.h> #include <string.h> #include <iostream.h> const int MAXLEN = 1024; //定义最大目录长度 unsigned long FILECOUNT = 0; //记录文件数量 void ListDir( const char * pchData, const char * pFileName, bool *pBool) { _finddata_t fdata; //定义文件查找结构对象 long done; char tempdir[MAXLEN]={0}; //定义一个临时字符数组,存储目录 strcat (tempdir, pchData); //连接字符串 strcat (tempdir, "\\*.*" ); //连接字符串 done = _findfirst(tempdir, &fdata); //开始查找文件 if (done != -1) //是否查找成功 { int ret = 0; while (ret != -1) //定义一个循环 { if (fdata.attrib != _A_SUBDIR) //判断文件属性 { if ( strcmp (fdata.name, "..." ) != 0 && strcmp (fdata.name, ".." ) != 0 && strcmp (fdata.name, "." ) != 0) //过滤. { char dir[MAXLEN]={0}; //定义字符数组 strcat (dir,pchData); //连接字符串 strcat (dir, "\\" ); //连接字符串 strcat (dir,fdata.name); //连接字符串 cout << dir << endl; //输出查找的文件 FILECOUNT++; //累加文件 if ( strcmp (fdata.name,pFileName) == 0) break ; } } ret = _findnext(done, &fdata); ////查找下一个文件 if (fdata.attrib == _A_SUBDIR && ret != -1) //判断文件属性,如果是目录,则递归调用 { if ( strcmp (fdata.name, "..." ) != 0 && strcmp (fdata.name, ".." ) != 0 && strcmp (fdata.name, "." ) != 0) //过滤. { char pdir[MAXLEN]= {0}; //定义字符数组 strcat (pdir,pchData); //连接字符串 strcat (pdir , "\\" ); //连接字符串 strcat (pdir,fdata.name); //连接字符串 ListDir(pdir,pFileName,pBool); //递归调用 if (*pBool) break ; } } } } } int main( int argc, char * argv[]) { while ( true ) //设计一个循环 { FILECOUNT = 0; char szFileDir[128] = {0}; //定义一个字符数组,存储目录 char szFileName[128] = {0}; bool isFind = false ; cin >> szFileDir; cin >> szFileName; if ( strcmp (szFileDir, "e" ) == 0) //退出系统 { break ; } ListDir(szFileDir,szFileName,&isFind); //调用ListDir函数遍历目录 cout << "共计" << FILECOUNT << "个文件" << endl; //统计文件数量 } return 0; } |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单