当前位置:  开发笔记 > 编程语言 > 正文

为什么通配符不能代表FindFirstFile中的目录?

如何解决《为什么通配符不能代表FindFirstFile中的目录?》经验,为你挑选了1个好方法。

我试图用来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

为什么这个限制?是否存在变通方法?



1> David Heffer..:

通配符仅允许在最终路径分隔符后的文件名部分中.该文件没有说明这一点.它说:

目录或路径以及文件名.文件名可以包含通配符,例如星号(*)或问号(?).

如果要搜索多个目录,则需要显式实现嵌套或递归迭代.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有