![](/img/trans.png)
[英]C++: std::ifstream ifs(path), 'path should be a constant'
[英]How get file path from std::ifstream in c++
我使用std::ifstream
打开一个文件。
我可以使用相对路径( file.txt
)或绝对路径( C:\\test\\file.txt
)打开文件。
当我传递一个字符串作为文件名时,我不知道它是相对路径还是绝对路径。
在使用std::ifstream
成功打开文件后,有人能告诉我如何获取绝对路径吗?
例如:
std::ifstream file(strFile); // strFile is "file.txt" or "C:\test\file.txt"
我希望在文件成功打开后获取绝对路径。
谢谢,
你不能, std::ifstream
不存储这些信息。
但是,你可以做的是:
使用像Boost.Filesystem库这样的库来在相对路径和绝对路径之间进行转换。
boost::filesystem::path abs_path = boost::filesystem::complete("./rel/path"); std::string abs_path_str = abs_path.string();
fstream类没有访问或处理用于打开文件的名称的功能,并且C ++标准库没有文件处理功能 - 您必须自己编写代码,或使用第三方库或操作系统 - 提供的功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.