【发布时间】:2017-01-17 11:12:37
【问题描述】:
我正在尝试使用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
为什么会有这个限制?是否存在解决方法?
【问题讨论】:
-
因为
*\*\*不是有效的目录名称。如果要在文件夹层次结构中搜索某些文件,则必须实现递归算法。