【发布时间】:2012-04-23 13:28:48
【问题描述】:
我正在尝试在大代码中打开文件。
有人告诉我,在处理文件时,使用绝对路径而不是相对路径可能是更好的做法。但是,此代码将由不同的人使用,他们可能将源放在不同的位置(例如 /home/username 或 /home/username/desktop/),因此我认为使用相对路径可能会更好访问我的配置文件,因为我知道它与我的 cpp 文件的关系。
以下是与我的问题相关的文件位置的简短总结:
我要读取的文件是/home/me/myproject/config/myfile.txt
我从中读取的文件是 /home/me/myproject/src/myfile.cpp
包含'main'的文件也是/home/me/myproject/src/myfile.cpp(这个文件很大)。
我正在从 Eclipse 启动可执行文件。我认为eclipse将工作目录设置为'main'所在的目录(/home/me/myproject/src/)。
当我要调用file.open() 时,工作目录(getcwd()) 现在是/home/me/myproject/,这让我感到困惑。显然,工作目录被 main() 和我调用 file.open() 之间的代码修改了。
我的问题是:依赖工作目录似乎很容易出错,如果它可以被程序的另一部分更改。另一方面,鉴于我不知道其他开发人员通常将其源代码放在哪里,我应该怎么知道我的配置路径在哪里?
【问题讨论】:
-
告诉你的应用程序配置文件在命令行的什么位置。
-
您需要它在任何平台上工作,还是只在类似 UNIX 的平台上工作?
标签: c++ eclipse file directory