C++ 使用C+读取文件夹中的所有文件,包括子文件夹中的文件+;
我想使用windows API中提供的FindFirstFile方法读取给定文件夹(文件夹路径)中的所有文件。目前我只能成功读取给定文件夹中的文件。我无法读取子文件夹中的文件。有人能帮我吗???当你调用C++ 使用C+读取文件夹中的所有文件,包括子文件夹中的文件+;,c++,winapi,C++,Winapi,我想使用windows API中提供的FindFirstFile方法读取给定文件夹(文件夹路径)中的所有文件。目前我只能成功读取给定文件夹中的文件。我无法读取子文件夹中的文件。有人能帮我吗???当你调用FindFirstFile/FindNextFile时,它返回的一些“文件”实际上是目录。 通过查看返回给您的WIN32\u FIND\u DATA结构的dwFileAttributes字段,可以检查某个内容是否为目录 如果您找到一个目录,那么只需递归调用文件查找函数即可进入子文件夹 注意:请确保
FindFirstFile
/FindNextFile
时,它返回的一些“文件”实际上是目录。
通过查看返回给您的WIN32\u FIND\u DATA
结构的dwFileAttributes
字段,可以检查某个内容是否为目录
如果您找到一个目录,那么只需递归调用文件查找函数即可进入子文件夹
注意:请确保为
和。
psuedo目录设置一个特殊的情况,否则您的函数将递归到自身中,并会导致堆栈溢出
以下是您尚未找到的文档:
(请记住,这些都是位标志,因此您必须使用&来检查)当您调用
FindFirstFile
/FindNextFile
时,它返回的一些“文件”实际上是目录。
通过查看返回给您的WIN32\u FIND\u DATA
结构的dwFileAttributes
字段,可以检查某个内容是否为目录
如果您找到一个目录,那么只需递归调用文件查找函数即可进入子文件夹
注意:请确保为
和。
psuedo目录设置一个特殊的情况,否则您的函数将递归到自身中,并会导致堆栈溢出
以下是您尚未找到的文档:
(请记住,这些都是位标志,因此您必须使用&to检查)使用
CFileFind
从MSDN查看这一点,使用CFileFind从MSDN查看这一点。或者,您可以使用它,它不仅为您提供一个干净的API,但也将使您的代码在所有受支持的平台上可移植。或者,您可以使用它,它不仅为您提供干净的API,还将使您的代码在所有受支持的平台上可移植。我使用此代码读取指定目录中的文件
CFileFind finder;
BOOL bWorking = finder.FindFile( directory );
while( bWorking )
{
bWorking = finder.FindNextFile();
}//end while
我已使用此代码读取指定目录中的文件
CFileFind finder;
BOOL bWorking = finder.FindFile( directory );
while( bWorking )
{
bWorking = finder.FindNextFile();
}//end while