bool traversalFiles::SearchDir( const CString& path )
{
WIN32_FIND_DATA findFileData;
CString filePath = path + _T("\\*.*");
WCHAR findPath[MAX_PATH];
memset(findPath, 0, sizeof(WCHAR)*MAX_PATH);
memcpy(findPath, filePath.GetString(), sizeof(WCHAR)*filePath.GetLength());
///< 奇葩年年有,开始时候直接用filePath.GetString() 不行,后来又可以,,,
HANDLE hFind = FindFirstFile(findPath, &findFileData);
if (hFind == INVALID_HANDLE_VALUE)
return false;
HandleHelper<HANDLE> hHlper(hFind); ///< 自己随便写个 自动释放的类吧。。
while (FindNextFile(hFind, &findFileData) != 0)
{
filePath = findFileData.cFileName;
if (filePath.IsEmpty() || filePath == _T(".") || filePath == _T(".."))
continue;
filePath = m_fileDir + _T("\\") + (findFileData.cFileName);
if (findFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
if (!SearchDir(filePath)) // 递归调用
return false;
}
else
m_fileList.insert(filePath);
}
return true;
}
vc 目录文件读取
最新推荐文章于 2021-02-02 09:06:39 发布