如何将绝对路径转换为相对路径?

lor*_*213 2 c++ filesystems

假设我有一个基本路径D:\files和一个绝对路径D:files\images\1.jpg。有没有一种方法可以将此绝对路径转换为相对于基本路径的相对路径?

Nim*_*rod 6

使用std::filesystem::relative(需要 C++17)

#include <filesystem>
#include <iostream>

int main() {
    std::cout << std::filesystem::relative("D:files/images/1.jpg", "D:files") << "\n";
    std::cout << std::filesystem::relative("D:files\\images\\1.jpg", "D:files") << "\n";
}
Run Code Online (Sandbox Code Playgroud)

输出

"images\\1.jpg"
"images\\1.jpg"
Run Code Online (Sandbox Code Playgroud)

演示