C++如何遍历文件夹?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++如何遍历文件夹?相关的知识,希望对你有一定的参考价值。

如何返回某个路径下所有文件(包括子文件夹中的文件)的文件名?采纳后再追加悬赏!!

标准C++目前并没有对文件系统的直接支持——世界上的文件系统千变万化,几乎无法搞出放之四海皆准的库


不过如果局限在 Windows 和 POSIX 兼容操作系统 这两类操作系统的话,难度就低多了。


Boost.Filesystem 库就提供了相关工具。这个库已经被标准化,即是 ISO/IEC TS 18822:2015 标准。最新版的 GCC 和 Visual Studio 部分支持这个库。


Filesystem 库的 recursive_directory_iterator 符合你的需求。

#include <fstream>
#include <iostream>
#include <experimental/filesystem> // 如果是 boost 则改为 #include <boost/filesystem.hpp>

// 如果用的是 Boost.Filesystem 则下一行改成 namespace fs = boost::filesystem;
namespace fs = std::experimental::filesystem;
 
int main()

    for(fs::path p: fs::recursive_directory_iterator("路径"))
        std::cout << p.filename() << '\\n';

参考技术A 首先编译器开C++17,头文件加filesystem
for(auto di : std::filesystem::recursive_directory_iterator(路径))
if(di.is_regular_file())
std::filesystem::path 文件路径 = di.path();
......

以上是关于C++如何遍历文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

C++:遍历地图

c++遍历目录下所有文件&文件夹

15 C++遍历某个文件夹下的文件

求一个windows下的纯C语言实现的文件夹遍历程序,要可以遍历子文件夹,不要unix下的和C++的。

c++ linux 遍历文件夹下的文件

C++文件遍历(小工具)