I open a file using std::ifstream
.
I may open file using relative path (file.txt
) or absolute path (C:\test\file.txt
).
As I am passing a string as the file name, I dont know whether it is relative or absolute path.
Can anybody tell me how to get absolute path after file has been successfully open using
std::ifstream
?
e.g.:
std::ifstream file(strFile); // strFile is "file.txt" or "C:\test\file.txt"
I want to get the absolute path after the file was open successfully.
Thanks,
You can't, std::ifstream
does not store this information.
What you can do, however, is:
use a library like Boost.Filesystem library to transform between relative and absolute paths.
boost::filesystem::path abs_path = boost::filesystem::complete("./rel/path");
std::string abs_path_str = abs_path.string();