【发布时间】:2020-09-30 12:26:50
【问题描述】:
我在很多语言中都遇到过这个问题,最近是 C++。
问题举例
假设我们正在使用 C++,并且项目的文件结构如下:
("Project" main folder with three [modules, data, etc] subfolders)
现在说:
- 我们的
maincode.cpp在Project文件夹中 -
moduleA.cpp位于 modules 文件夹中 -
data.txt在 data 文件夹中 -
moduleA.cpp想看data.txt
所以我目前的做法是 assume maincode.cpp 在 Project 文件夹中编译和执行,所以 hardcode em> moduleA.cpp 中的路径 data/data.txt 进行读取(假设我使用了 fstream fs("data/data.txt") 这样做)。
但是,如果出于某种原因,代码在 etc 文件夹中执行,该怎么办?
有没有办法解决这个问题?
问题
- 这是一个有效的问题吗?还是我错过了 wd(工作目录)概念基础知识?
- 是否有任何方法可以绕过绝对路径以在 C++ 中解决此问题?
- 是否有任何通用方法可以用任何语言做同样的事情?
- 如果没有合理的方法,您将如何处理这个问题?
如果我错过了问题插图中的任何重要细节,请发表评论!
【问题讨论】:
-
你可能对
std::filesystem::current_path感兴趣。 -
@Eljay 我不知道那个。可以证明非常有用!谢谢!
标签: c++ file-io working-directory file-structure