在我的应用程序中,我尝试从某个目录获取文件名,并指定了扩展名以获取名称。
代码是
void OsInterface::getFileNames(TCHAR* dir_name, TCHAR* extension, std::vector<std::wstring>* file_names)
{
HANDLE hFind;
WIN32_FIND_DATA win32fd;//defined at Windwos.h
TCHAR* t = wcscat(dir_name, _T("\\*."));
TCHAR* search_name = wcscat(t, extension);
hFind = FindFirstFile(search_name , &win32fd);
if (hFind == INVALID_HANDLE_VALUE) {
throw std::runtime_error("file not found");
}
do {
if (win32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
}
else {
file_names->push_back(win32fd.cFileName);
}
} while (FindNextFile(hFind, &win32fd));
FindClose(hFind);
}
我在unhandled exception
有win32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY
,具体取决于KernelBase.dll
您有解决此问题的想法吗?
我的环境是
-视窗10
-Visual Studio Community 2017
谢谢。