遍历目录查找文件

HRESULT FindFile(CStdString directory, CStdString filename)//directory = _T("F:\\新建文件夹"),filename = _T("*.*")
{
	HRESULT hr = E_FAIL; 
	TCHAR tmpDirExpr[MAX_PATH] = {0};
	memset(tmpDirExpr, 0, MAX_PATH * sizeof(TCHAR));
	strcat(tmpDirExpr, directory);
	strcat(tmpDirExpr,_T("//*"));
	CStdString resultPath;
	WIN32_FIND_DATA FindFileData;
	HANDLE hFind=::FindFirstFile(tmpDirExpr,&FindFileData);
	if(INVALID_HANDLE_VALUE == hFind)		
		return hr;
	while(TRUE)
	{
		if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
		{
			if(FindFileData.cFileName[0]!='.')
			{
				TCHAR szFile[MAX_PATH];
				strcpy(szFile, directory);
				strcat(szFile, "//");
				strcat(szFile, FindFileData.cFileName);
				hr = FindFile(szFile, filename);
			}
		}
		else
		{
			//文件已找到,自定义操作	
			CStdString strFilename = FindFileData.cFileName;//strFilename存放的是文件名,包括后缀			
		}
		if(!FindNextFile(hFind,&FindFileData))    
			break;
	}
	FindClose(hFind);
	return hr;
}


 

你可能感兴趣的:(File,Path)