如何使FindFirstFile打开指定路径的子目录
How do you make FindFirstFile open a subdirectory of the path you gave it?
我想遍历目录的所有子目录,找到所有.snt文件。但是FindFirstFile和FindNextFile只搜索给定的目录,而不搜索其子目录。
具体来说,我正在搜索路径F:\Program Files(x86)\Amnia\sounds\
中sounds文件夹的所有子文件夹我尝试将F:\Program Files (x86)\Amnesia\sounds\*\*.snt
传递给FindFirstFile,但它返回垃圾。正确的方法是什么?
#include <windows.h>
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
void main()
{
char path[100]="F:\Program Files (x86)\Amnesia\sounds\*\*.snt";
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
hFind = FindFirstFile(path, &FindFileData);
printf("The first file found is %sn",FindFileData.cFileName);
getch();
}
嗯,"手动"递归。
下面是递归的概念。缺少的是基于扩展名的文件检测。
void file_search_rec(const char *folder)
{
char path[MAX_PATH] ;
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
strcpy(path, folder) ;
strcat(path, "\*") ;
FindFirstFile(path, &FindFileData) ;
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
char subpath[MAX_PATH] ;
strcpy(subpath, folder) ;
strcat(subpath, FindFileData.cFileName) ;
// here make the recursive call on subpath
file_search_rec(subpath) ;
}
}
相关文章:
- 如何将更多文件夹添加到c++include路径
- 带有特殊路径部分的"std::filesystem::weakly_canonical"失败
- C++A*算法并不总是在路径中具有目标节点
- 子目录是否继承属性,例如add_definitions,include_directories和父Cmakelist.t
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 从函数角度看ID到文件路径的内部与外部映射
- boost xml parsingl将xml的路径作为变量发送
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- 如何使用cppcheck处理半相对包含路径
- 在C++中设置基于操作系统的文件路径
- 基于编译器选项的编译二进制路径
- 我怎样才能将所有子目录与 cmake 自动匹配
- 按边长度递归搜索图中所有可行路径
- 使用变量值作为 PlaySound 中的路径
- 获取每个目录或子目录中第一个文件的路径
- 是什么让 clang 在包含路径的子目录中看起来?
- 仅将包含路径的特定子目录添加到包含
- Eclipse 编译器包含路径子目录
- 在子目录中包含路径
- 如何使FindFirstFile打开指定路径的子目录