C++获取当前执行文件目录路径以及遍历当前目录所有文件
为了方便程序员访问操作文件,C++17引入了文件系统库。
文件系统库提供在文件系统与其组件,例如路径、常规文件与目录上进行操作的设施。 文件系统库原作为 boost.filesystem 开发,出版为技术规范 ISO/IEC TS 18822:2015 ,并最终从 C++17 开始并入 ISO C++ 。现在 boost 实现可用的编译器和平台于多于 C++17 库。
文件系统库定义于头文件 <filesystem>
定义于命名空间filesystem
在文件头加入以下代码即可使用文件系统库:
#import<filesystem>
// 推荐使用import宏,import宏可以避免重复导入
// #include<filesystem>
namespace fs = std::filesystem;
获取当前文件目录
cout << "current path:" << fs::current_path() << endl;
遍历当前目录所有文件
文件系统库提供了directory_iterator作为文件目录遍历器:
fs::directory_iterator di(fs::current_path());
for (auto &item : di) {
cout << di->path().filename()<< endl;
}
官网中文文档
https://zh.cppreference.com/w/cpp/filesystem
官网文档非常好用。
来源:oschina
链接:https://my.oschina.net/StupidZhe/blog/3193633