[英]Read all files inside a folder including files in subfolders using C++
我想使用Windows API中提供的FindFirstFile方法读取给定文件夹(文件夹的路径)内的所有文件。 目前,我仅成功读取给定文件夹中的文件。 我无法读取子文件夹中的文件。 谁能帮我做到这一点?
当您调用FindFirstFile
/ FindNextFile
,它返回的某些“文件”实际上将是目录。 您可以通过查看返回给您的WIN32_FIND_DATA
结构的dwFileAttributes
字段来检查某物是否为目录。
如果找到一个目录,则可以简单地递归调用文件查找功能以进入子文件夹。
注意:请确保为放入特殊情况.
和..
psuedo-directories,否则您的函数将递归到其本身,并且您将获得堆栈溢出
如果您还没有找到,请参考以下文档:
dwFileAttributes的可能值 (请记住,这些都是位标志,因此您必须使用&进行检查)
另外,您可以使用boost :: filesystem ,它不仅可以为您提供干净的API,而且还可以使代码在所有受支持的平台上可移植。
使用CFileFind
从MSDN看这个示例 。
我已使用此代码读取指定目录中的文件。
CFileFind finder;
BOOL bWorking = finder.FindFile( directory );
while( bWorking )
{
bWorking = finder.FindNextFile();
}//end while
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.