Boost C ++文件系统程序无法运行

时间:2011-11-14 08:24:31

标签: c++ boost

#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&gt;的实例后终止调用&GT; &GT;”   what():boost :: filesystem :: copy_file:文件存在:“/ usr / BoostCode / 1.txt”,“/ usr” 中止

请帮助解释这个片段有什么问题? 在此先感谢

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:3)

插入一行:

dst = dst/src.filename();

创建dst后将其放入。并且您的程序将按预期工作。它抱怨/usr已经存在,因此无法在其上复制。