【问题标题】:Boost C++ File System program not able to runBoost C++ 文件系统程序无法运行
【发布时间】:2011-11-14 08:24:30
【问题描述】:
#include <boost/filesystem/path.hpp>
#include <boost/filesystem/operations.hpp>
using namespace std;
using namespace boost;


int main()
 {
  boost::filesystem::path src("/usr/BoostCode/1.txt");
  boost::filesystem::path dst("/usr");
  boost::filesystem::copy_file(src, dst);
}

我要做的是:将文件“1.txt”从“/usr/BoostCode”目录复制到“/usr” 编译: g++ bfs.cpp -lboost_system -lboost_filesystem -o bfs 运行: ./bfs

出现错误: 在抛出 'boost::exception_detail::clone_impl >> >' 的实例后调用终止 what(): boost::filesystem::copy_file: 文件存在: "/usr/BoostCode/1.txt", "/usr" 中止

请帮忙看看这个sn-p有什么问题吗? 提前致谢

【问题讨论】:

  • 可能是权限问题。

标签: c++ boost


【解决方案1】:

您不必指定完整的目的地吗?

boost::filesystem::path dst("/usr/1.txt");

【讨论】:

    【解决方案2】:

    dst 变量应该保存文件的新名称,而不仅仅是目录。现在您尝试将文件复制到目录中,但失败了。请参阅the boost::filesystem::copy_file 文档。

    【讨论】:

      【解决方案3】:

      插入行:

      dst = dst/src.filename();
      

      在创建dst 之后放置它。您的程序将按照您的预期运行。它抱怨/usr 已经存在,因此无法在其上复制。

      【讨论】:

      • 他们重新定义了运算符 / 以连接 boost 8D 中的路径 太棒了!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多