从流中获取文件名(或路径)
Getting filename (or path) from fstream
我可以从fstream
对象获取文件名或其路径吗?我查看了fstream
的方法,没有找到任何接近它的东西。
不,这是不可能的,至少在库的标准一致性实现中是不可能的。
fstream 类不存储文件名,也不提供任何用于检索它的函数。
因此,跟踪此信息的一种方法是将std::map
用作:
std::map<std::fstream*, std::string> stream_file_table;
void f()
{
//when you open a file, do this:
std::fstream file("somefile.txt");
stream_file_table[&file] = "somefile.txt"; //store the filename
//..
g(file);
}
void g(std::fstream & file)
{
std::string filename = stream_file_table[&file]; //get the filename
//...
}
或者,也只是传递文件名。
你也可以设计一个小类,它继承自fstream
,行为类似于fstream
,但也存储其文件名。
相关文章:
- 有没有一种简单的方法可以从 c++ 中的路径获取文件名?
- 从 C++ 中的文件路径中提取文件名
- 指定用户定义的文件名的路径
- 从 QFileSystemModel 中的文件路径和文件名获取 QModelIndex
- 如何更改变量文件名的文件路径?
- Xcode 8.3.2 中的错误警告:文件的非可移植路径 - 指定的路径与磁盘上的文件名不同
- #line 指令的 nul.h 文件名的文件路径不正确
- 从文件名中提取文件名,路径来自参数
- 运行正则表达式时未选中的异常 - 从文件路径获取不带扩展名的文件名
- Simple_ls.cpp的C++Boost编译错误-未找到对Boost的引用::文件系统::路径::文件名
- 获取模块文件名不返回路径
- 向文件名参数(LPCSTR)添加预先声明的路径
- 如何生成唯一的文件名或路径
- c++将文件的路径组合为字符串和文件名
- 在vc++中,只从文件的完整路径中查找文件名
- 在 mingw 下编译时出现路径查找文件名错误
- 从流中获取文件名(或路径)
- 如何连接路径和不同的文件名 - C++
- C ++如何从路径字符串中删除文件名
- 使文件名保留在boost中的路径中