【问题标题】:How to specify/determine ofstream file path for Win32 application in Visual Studio 2015如何在 Visual Studio 2015 中指定/确定 Win32 应用程序的流文件路径
【发布时间】:2016-11-01 22:10:48
【问题描述】:

我怎样才能知道 ofstream 将文件放在哪里,或者它只是没有这样做(因此,为什么我找不到它?)

. . .  long section of legacy code . . .
std::ofstream a_file("debugLog.txt", std::ios_base::app);
a_file << "tgt";
a_file.close();
}
BREAKPOINT

#include <fstream>
#include <iostream>
#include <stdio.h>

添加到应用程序预编译器指令(这是我作为学徒工作的遗留战争游戏应用程序),应用程序可以毫无问题地构建和执行。我的断点功能与添加此代码之前一样,但我无法在任何地方找到该 debuglog.txt 文件!?

Visual Studio 配置属性中有没有办法为这类东西指定目录?

【问题讨论】:

  • 不是完全相同的副本,但这可能会有所帮助:stackoverflow.com/q/4807629/3723423
  • 您可能应该弄清楚您的进程工作目录是什么并查看那里。如果您想从外部查看您的流程活动,process monitor 将向您显示文件写入的确切位置,以及如果写入失败,原因是什么。
  • 谢谢克里斯托夫。我今天早些时候看到了该线程并尝试了 GetCurrentDirectory(),但用法有点不清楚,看起来 Monoceres 扩展了他的响应。明天早上我有空的时候就得去探索一下。
  • @DicheBach,有更新吗?请您分享有关此问题的最新信息吗?
  • 项目刚刚开始,所以我的导师非常“苏格拉底”,让我在代码中摸索一下;)。结合事实:他是一位非常忙碌的 IT 主管,而这只是他几年未从事的一个副项目。 . .好吧,他不记得每一个细节。所以基本上,程序中已经有代码来做我试图找到一种新方法的事情,它使用 fprintf 和一些非常好的相对路径算法。我没有发现进程监视器很有帮助。

标签: c++ visual-studio


【解决方案1】:

我同意eran 的建议,我们无法从ofstream 获取文件名或路径,因为ostream 可能是没有文件关联的ostringstream。因此,您可以使用当前进程的工作目录来组成绝对路径或使用某些工具来帮助您查找文件,如进程监视器、Windows 资源管理器搜索或其他。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多