【发布时间】:2011-06-19 07:13:35
【问题描述】:
我知道,打开一个文件,将其限制在与执行模块相同的目录中,这不是最好的主意。但是,有一个工具,我被命令编程,具有精确的这些规范。
文件路径有一个参数,可以是文件的绝对路径,也可以是文件名,假设它位于当前目录中。
我不想使用 WinAPI 函数 GetCurrentDirectory 来保持可移植性。如果文件无法打开,该工具应该会失败。
通常我使用 boost::filesystem 作为 I/O 库。因此,我对标准库不是很熟悉。
我的第一个想法是将文件路径传递给 std::ifstream::open()。但这似乎不适用于相对路径。
我可以做些什么来满足我的要求?
【问题讨论】:
-
您开始谈论打开与可执行文件位于同一目录中的文件。然后你说说当前目录。这些不一定相同。事实上,我什至会说命令行程序的当前目录与程序自己的目录相同是罕见。请说明你真正需要的。
标签: c++ io relative-path ifstream