代码改变世界

小记2_finddata_t结构体

2014-01-15 19:58  jiaoluo  阅读(538)  评论(0编辑  收藏  举报

遍历文件家中的文件

//调用下面函数或结构体所要包含的文件头
#include <io.h>
void Cdialog1Dlg::OnBnClickedOk()
{
	CString sfile = "F:\\SQLyaog\\SQLyog Trial\\*.exe";//文件的路径
	struct _finddata_t c_file;    //_finddata_t结构体包含文件的文件名,大小最后一次访问修改时间等
	long hfile;
	//不能写成if(hfile = _findfirst(LPCSTR(sfile),&c_file) == -1L)因为==的优先级要比=高
	//搜索与指定文件名称或路径匹配的第一个实例,若成功返回第一个实例句柄
	//否则返回-1L
	if((hfile = _findfirst(LPCSTR(sfile),&c_file)) == -1L)//
	{
		::AfxMessageBox("No PE file in current directory");
	}
	else
	{
		do
		{
			AfxMessageBox((LPCSTR)c_file.name);//输出检索到的符合要求的文件名
		}while(_findnext(hfile,&c_file) == 0);//搜索与_findfirst函数提供的文件名
		//相匹配的下一个实例,若成功返回0,否则返回-1.
	}
	_findclose(hfile);//释放句柄。

	CDialogEx::OnOK();
}

  缺点:加入此文件还含有文件夹,此方法没能很好的解决此子文件夹里的和服要求的文件。