kevin55

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
// 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 2012-05-12 23:28  kernel_main  阅读(1148)  评论(0编辑  收藏  举报