You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中如何将const std::filesystem::directory_entry转为string类型

解决方案

std::filesystem::directory_entry 类型本身封装了文件的路径信息,你只需要先调用它的path()方法拿到对应的std::filesystem::path对象,再调用string()方法即可转为std::string类型。

核心转换代码

你只需要把循环内的转换逻辑替换为如下代码即可:

str = file.path().string();

完整可运行示例

#include <filesystem>
#include <string>   
#include <iostream> 

using namespace std; 

int main()
{
    string path = "/logs";
    string str = "";
    for (const auto& file : directory_iterator(path))
    {
        // 完成类型转换
        str = file.path().string();
        // 后续可直接操作str变量
        cout << "当前文件路径:" << str << endl;
    }
    return 0;
}

补充说明

  • 你能直接用cout << file打印路径,是因为std::filesystem::directory_entry重载了<<运算符,内部默认输出持有的路径对象。
  • 如果需要获取绝对路径,可以调用absolute(file.path()).string();如果只需要纯文件名,可以调用file.path().filename().string();需要文件后缀的话可以用file.path().extension().string()。
  • Windows平台如果需要宽字符路径,把string()方法替换为wstring()即可得到std::wstring类型。

内容的提问来源于stack exchange,提问作者Abdullah Chaudhry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 18:54:01