C++如何遍历文件夹? 10

如何返回某个路径下所有文件(包括子文件夹中的文件)的文件名?采纳后再追加悬赏!!... 如何返回某个路径下所有文件(包括子文件夹中的文件)的文件名?采纳后再追加悬赏!! 展开
 我来答
zjfaok
推荐于2018-04-12 · TA获得超过6807个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1696万
展开全部

标准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';
}
百度网友625f413
2020-06-07 · TA获得超过192个赞
知道答主
回答量:49
采纳率:100%
帮助的人:3.5万
展开全部
首先编译器开C++17,头文件加filesystem
for(auto di : std::filesystem::recursive_directory_iterator(路径)){
if(di.is_regular_file())
std::filesystem::path 文件路径 = di.path();
......
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式