vc++ 实现dir一个目录中所有文件功能
2016-04-28 16:11
531 查看
// 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; }
相关文章推荐
- 使用GDB命令行调试器调试C/C++程序
- C语言 程序代码编写规范
- C++this指针
- Subsets II
- C语言里面的 malloc 函数
- 知无涯之C++ typename的起源与用法
- c++ 时间和日期、随机数—— c++复习(四)
- C++内联函数
- iOS OC语言: Block底层实现原理
- c++ std::bind用法小结。
- C++友元1
- C++友元
- C++关键词 —— explicit
- c++程序设计心得体会一
- 初学c++经验学习心得入门篇 老鸟飘过
- C++中的容器类详解
- c++容器使用经验总结
- C语言中内存分布及程序运行加载过程
- 编译原理——Tiny词法分析器c++实现
- C++中的引用与const