如何找到我从C++中创建的文件的目录路径?
问题描述:
我想获得我使用ofstream创建的文件的目录。 代码我写的是一样的东西如何找到我从C++中创建的文件的目录路径?
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等上工作)。
答
你应该看看Boost.Filesystem的便携式路径处理。 C++没有太多的路径,因为你可能在没有文件系统的平台上运行。但是,您可以尝试使用getcwd获取某些内容,并在输出和文件名之间添加“/”。 getcwd不是C的一部分,但它在Windows上可用作为_getcwd - 符合POSIX标准的系统将具有规范getcwd
。这应该有效(但我很确定有些情况下不会出现这种情况,例如,如果从UNC路径运行等)。
答
在窗口上,我可以帮你一把。获得工作目录 http://msdn.microsoft.com/en-us/library/sf98bd4y%28v=vs.80%29.aspx
#include <direct.h>
char cCurrentPath[MAX_PATH];
_getcwd(cCurrentPath,sizeof(cCurrentPath));
听起来就像你在找什么。
呵呵呵呵呵呵看看这里 What is a cross-platform way to get the current directory?
是首先解决MC++?我没有真正暴露于扩展的C++库,但我不认为这将是一个合理的解决方案,因为我不认为他使用MS Tasks:ITask :: GetWorkingDirectory() – 2011-03-24 17:38:44
还有什么更好的?对不起,有错误的链接。 – ultifinitus 2011-03-24 18:09:58
我如何实现获取文件路径的字符串? – js0823 2011-03-24 20:56:53