#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” 中止
请帮助解释这个片段有什么问题? 在此先感谢
答案 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
已经存在,因此无法在其上复制。