kevin55

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  101 随笔 :: 0 文章 :: 25 评论 :: 24万 阅读
// 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;
}

  

posted on   kernel_main  阅读(1163)  评论(0编辑  收藏  举报
编辑推荐:
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
阅读排行:
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
点击右上角即可分享
微信分享提示