如何在C ++中找到我从ofstream创建的文件的目录路径?

时间:2011-03-24 16:44:05

标签: c++ ofstream

我想获取使用ofstream创建的文件的目录。 我编写的代码类似于

std::ofstream txt("sample.txt", std::ios::binary);

然后我写了一些东西到txt文件,然后调用txt.close()来关闭ofstream。在编写时,我想获取sample.txt文件的位置并将其写入sample.txt。 例如,目录路径将如下所示:

/home/usr/Downloads/sample.txt

我想将整个内容保存为字符串,以便将其写入sample.txt文件中。有人可以帮忙吗? 我正在使用linux来编写代码,一个通用的方法就可以了(在windows,linux,mac等上工作)。

2 个答案:

答案 0 :(得分:4)

您应该查看Boost.Filesystem的便携式路径处理。 C ++没有太多的路径,因为您可能在没有文件系统的平台上运行。但是,您可以尝试使用getcwd获取内容并在输出和文件名之间附加“/”。 getcwd不是C的一部分,但它在Windows上可用作_getcwd - 符合POSIX标准的系统将具有规范getcwd。这应该可以工作(但是我很确定有一些例子,如果从UNC路径运行,它就不会出现这种情况。)

答案 1 :(得分:0)

在窗户上,我可以帮你一臂之力。获取工作目录 http://msdn.microsoft.com/en-us/library/sf98bd4y%28v=vs.80%29.aspx

 #include <direct.h>

 char cCurrentPath[MAX_PATH];
_getcwd(cCurrentPath,sizeof(cCurrentPath));

听起来就像你在寻找的东西。

OH OH OH看这里 What is a cross-platform way to get the current directory?