发布时间:2025-12-09 21:59:45 浏览次数:4
最近在windows下编码,用的是c++
在开发过程中,发现有些常用的API用的不是很熟练,上网查资料,效率太慢。故此写篇文章来整理一下自己用过或即将要用的API函数。
废话不多说,上代码:
//模糊查询if (-1 != strFile.Find('*',0)){//截取\\后面的模糊查询条件char buf = '\\';char *dirFilePath;dirFilePath = (LPSTR)(LPCTSTR)strFile;dirFilePath += strFile.ReverseFind(buf);dirFilePath++;int length = 0;length = strFile.ReverseFind(buf);length++;//截取查询的文件路径CString fileNamePath = strFile.Left(length);fileNamePath.Insert(length,"*.*");string fileName = (LPCTSTR)fileNamePath;//打开文件路径_finddata_t fileInfo;long handle = _findfirst(fileName.c_str(), &fileInfo);if (handle == -1L){return FALSE; //打开文件路径失败}//遍历文件目录do {if (PathMatchSpec(fileInfo.name,dirFilePath)) {CString folderName = strFile.Left(length);folderName.Insert(length,fileInfo.name);//判断是否文件夹DWORD dwAttributes = GetFileAttributes((LPCTSTR)folderName);if ( INVALID_FILE_ATTRIBUTES == dwAttributes){WriteLog("Fail to get file %s's FileAttribute.", folderName);}else if ( FILE_ATTRIBUTE_DIRECTORY != (dwAttributes & FILE_ATTRIBUTE_DIRECTORY) ){bFileExist = TRUE;break;}}} while (_findnext(handle, &fileInfo) == 0);//返回模糊查询结果return bFileExist;}
以上主要用到了一个类的方法和windows下遍历目录文件的API BOOL PathMatchSpec(
LPCSTR pszFile, LPCSTR pszSpec);