C++ 如何在另一个系统上启用文件路径

C++ 如何在另一个系统上启用文件路径,c++,image,file,filepath,C++,Image,File,Filepath,我使用以下路径初始化了几个文件: String filePath = "/Users/user1/Documents/UWE/Year_3/SDA/GDA GUI Test/Program_Files/modelgraphic1.png"; 它们显示图像,在另一台计算机上运行时,图像不会显示。我记得过去做过类似的事情: String filePath = "/.../.../.../.../.../.../GDA GUI Test/Program_Files/modelgraphic1

我使用以下路径初始化了几个文件:

  String filePath = "/Users/user1/Documents/UWE/Year_3/SDA/GDA GUI Test/Program_Files/modelgraphic1.png";
它们显示图像,在另一台计算机上运行时,图像不会显示。我记得过去做过类似的事情:

  String filePath = "/.../.../.../.../.../.../GDA GUI Test/Program_Files/modelgraphic1.png";

这不管用。我怎样才能纠正这个问题?非常感谢

Boost文件系统是最依赖路径的库之一。
Boost文件系统文档=>

使用原因:

  • 一个现代C++接口,与C++标准库高度兼容。
  • 操作系统之间的可移植性
  • 通过C++异常(默认)或错误代码来处理和报告错误。
原始答案=>
示例代码:

#include <iostream>
#include <boost/filesystem.hpp>

namespace fs = boost::filesystem;

int main ()
{
    fs::path dir ("/tmp");
    fs::path file ("foo.txt");
    fs::path full_path = dir / file;
    std::cout << full_path << std::endl;
}

不要使用绝对路径。使用相对路径。通常与可执行文件相关-查找
-rpath
$ORIGIN
以及“当前工作目录”。可能重复:?
$ g++ ./test.cpp -o test -lboost_filesystem -lboost_system
$ ./test 
/tmp/foo.txt