Get the Absolute Path from Std: :Filesystem: :Path C++
I Have This Piece of Code Auto Path = Std: :Filesystem: :Path("/Root/Home/. ./Opt/."); I Had Tried Std: :Filesystem: :Absolute() but Then Realized It Is for...
I have this piece of code
auto path = std::filesystem::path("/root/home/../opt/.");
I had tried std::filesystem::absolute() but then realized it is for something else than the reasult I want
My question is how can i convert that relative path to the absolute path so that the reasult will be "/root/opt/".
I am using c++17 on Debian g++-9
2 Answers
Use std::filesystem::canonical to turn the path into an absolute path with all .. removed (reference):
auto path = std::filesystem::canonical("/root/home/../opt/.");
Gives you:
"/root/opt"
You can also use from this function.
std::cout << std::filesystem::path("/root/home/../opt/.").lexically_normal() << std::endl;