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

标签 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 等上工作)。

最佳答案

你应该看看Boost.Filesystem用于可移植路径处理。 C++ 没有太多路径,因为您可能在没有文件系统的平台上运行。但是,您可以尝试使用 getcwd 获得一些东西。并在输出和文件名之间附加“/”。 getcwd 不是 C 的一部分,但它在 Windows 上可用 _getcwd -- POSIX 兼容系统将具有规范的getcwd。这应该可以工作(但我很确定在某些极端情况下它不会工作,例如,如果从 UNC 路径等运行。)

关于c++ - 如何找到我在 C++ 中从 ofstream 创建的文件的目录路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5422555/

相关文章:

c++ - 是否有用于建模发布者 - 订阅者关系的容器,并且可以快速查找其中任何一个?

c++ - 将字节写入 .Bin 文件

c++ - 从文本文件打开和编辑数值数据并将结果放入新文件,C++

c++ ofstream指针无法写入磁盘

c++ - 在线程中写入文件,C++

c++ - ofstream中可以设置 "eof"吗?

C++:abs有什么问题

c++ - 使用 opencv 在 C++ 中读取图像文件序列 w/o

c++ - 在不区分大小写的字符串 vector 中查找字符串 C++

c++ - 使用 std::copy 从 ifstream 读取十六进制值序列