我正在尝试使用FindFirstFile
来检查模式后是否存在某些文件,但是通配符*
似乎无法代表目录。
int main()
{
WIN32_FIND_DATAW findFileData;
wchar_t path[] = LR"(.\*\*.txt)";
HANDLE hFind = FindFirstFileW(path, &findFileData);
if(hFind != INVALID_HANDLE_VALUE)
{
do
{
printf("%S\n", findFileData.cFileName);
} while (FindNextFileW(hFind, &findFileData));
}
}
有了这棵树,什么也不会打印:
.
|- foo
| |- some.txt
|
|- bar
| |- another.txt
为什么会有这个限制?是否存在解决方法?
最佳答案
只能在最后路径分隔符之后的文件名部分使用通配符。 documentation确实对此进行了解释。它说:
如果要搜索多个目录,则需要显式实现该嵌套或递归迭代。