c++ - Boost Filesystem 在 Linux 上创建目录,用 "/"替换 "\"

标签 c++ linux boost ubuntu-9.10 boost-filesystem

在以下示例中使用 Boost Filesystem 的 createdirectory(和 createdirectories)函数时,“/”将替换为“\”。

boost::filesystem::path path ("/data/configSet");
boost::filesystem::create_directory(path);

此代码片段生成一个名为“data\configSet”的目录,而不是在“data”中创建“configSet”的子目录。使用createdirectories()也会出现同样的问题;

在Windows系统上执行代码不会出现该问题。我目前正在使用 Ubuntu 9.10 在 Linux 上进行测试

最佳答案

出于某种原因,boost::filesystem 似乎认为您使用的是 Windows,而不是 Linux,因此使用的是 Windows 风格的路径名(由\分隔)。您能否发布更多有关如何构建 Boost 以及如何包含标题的信息?您是否正在 Linux 上构建 Windows 版本的 Boost?

编辑:我已尝试将自己设置为尽可能接近您的配置。 Ubuntu 9.10,安装了 libboost1.40-all-dev。当我编译并运行以下程序时,它按预期工作,在 /data 中创建了一个名为 configSet 的目录。

#include <boost/filesystem.hpp>

int main() {
  boost::filesystem::path p("/data/configSet");
  boost::filesystem::create_directory(p);

  return 0;
}

您能否尝试使用以下命令编译并运行该程序,看看它是否会给您带来不同的结果?

$ g++ -o boost-filesystem -lboost_filesystem boost-filesystem.cpp
$ ./boost-filesystem

关于c++ - Boost Filesystem 在 Linux 上创建目录,用 "/"替换 "\",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1960075/

相关文章:

c++ - 将 LPCWSTR 与另一个字符串组合

C++ 基于文本的游戏 - "Map"实现

linux - NetworkManager连接断开原因-3问题

c++ - boost::spirit::qi matches[] 麻烦

c++ - Boost asio io_content 运行非阻塞

c++ - Boost 属性树 (XML) 删除空行

c++ - OnKillFocus 未被调用

xml - 使用 bash 脚本从 XML 文件中提取特定关键字

Linux命令运行cpp和jar

c++ - 为 boost::property_tree::ptree 移动构造函数