c++ - 来自当前 Windows 位置的文件 I/O C++

标签 c++ winapi file-io path

我还没有找到关于这个的明确答案。我试图从我的 .EXE 访问子文件夹中的文件。当我之前问过时,人们告诉我如果我想访问/info/中的某些内容,请使用绝对位置,即“c:/game/info/”

但是对于我或任何人来说,假设某人将从同一目录中使用他们的程序是完全不合理的。如果用户只有 D 盘怎么办?诸如此类。

所以我的问题是:如何在不依赖整个路径的情况下从我的可执行文件访问子目录中的文件?

最佳答案

您的标题是“Windows”,所以我将给出特定于 WinAPI 的答案。

在 Windows 上,您可以使用 GetModuleFileName(NULL, ...) 找到您的应用程序目录, 和 PathRemoveFileSpec .那么PathAppend将生成您的数据文件的完整路径。

或者您可以将.exe 文件中的数据存储为Win32 resources。 , 所以他们永远不会分开。


请注意,此方法通常仅适用于对数据文件的只读访问。如果您尝试在您的应用程序目录中写入文件,您可能会被 ACL 阻止(取决于计算机的安装位置和本地安全设置)。

关于c++ - 来自当前 Windows 位置的文件 I/O C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6319606/

相关文章:

c++ - 在 C 中定义网络通信的结构

Python:正则表达式使用re.search

c - 有没有办法让 scanf 从文件中读取

c++ - 在qt中获取项目的正确版本

c++ - 将 R 添加到动态创建的正则表达式模式

c++ - C++中 "int a(); "有什么作用?

winapi - 在 Windows API 中设置菜单的宽度

c++ - 如何在 WinApi (C++) 中创建计时器?

c++ - 如何将对象传递给 CreateThread 函数?

java - JNLP FileSaveService 在调用 saveAsFileDialog 方法时忽略给定的名称和扩展名