如何构造一个相对于另一个路径的文件路径?

问题描述 投票:0回答:1

假设我的应用程序从工作目录 A 运行,并摄取目录 B 中的配置文件(绝对路径已知)。然后,此配置文件将引用相对于配置文件或绝对的其他文件 (C)。它不必是同一工作树的一部分。

为了可视化:

A (workdir)
├── config
│   └── default.yaml (B) --\
├── data                   | relative (or absolute) path to image (C)
│   └── image.png <--------/
├── tools
│   └── myapp.exe
│ 

我现在如何规范我的路径 C 相对于工作目录 A 的关系?或者换句话说,如何确保 C 中的路径相对于 A 进行重写,以便当我在 A 中运行的应用程序查看时它们引用相同的文件?我想用

std::filesystem
来实现这一点。

c++ filesystems
1个回答
0
投票

如果你的资源路径是

resourcePath
并且你的配置路径是
configPath
那么你可以这样做:

if (resourcePath.is_relative())
{
  resourcePath = configPath.parent_path() / resourcePath;
}
© www.soinside.com 2019 - 2024. All rights reserved.