我正在尝试解析txt文件,我想相对于我当前的目录位置引用它。如果我完全放入文件路径它将工作但我尝试使用 .. \ src \ test.txt它找不到它。这不是在一个目录中引用文件的正确方法吗?
任何帮助将不胜感激
答案 0 :(得分:11)
如果将“.. \ src \ test.txt”放在字符串常量中,则需要将所有反斜杠加倍,以使“\ t”和“\ s”不被解释为转义序列。 (或者你可以使用正斜杠,这样更便携。)
答案 1 :(得分:3)
取决于当前工作目录的设置。默认情况下,如果从资源管理器中双击应用程序,则可执行文件所在的目录,或者从命令提示符启动时,shell所在的当前路径。
如果test.txt在c:\ code \ app \ src中,而你的应用程序在c:\ code \ app中,则相对路径“.. \ src \ test.txt”将以c:\结尾code \ src \ test.txt(如果从资源管理器启动)。
在尝试打开文件之前尝试打印_getcwd的输出,以验证当前工作目录是什么目录。
答案 2 :(得分:1)
假设你的目录结构如下:
project +---src | test.txt | proj.c \---bin a.out <- Working directory
你的相对路径是正确的;您的工作目录实际上与文本文件处于同一级别。
如果你真的是说文件是你所说的一个目录,就像这样:(注意:这是一个笨拙的项目结构)
project \---src | test.txt | proj.c \---bin a.out
或者像这样:(更有意义)
project | test.txt +---src | proj.c \---bin a.out
然后您需要的路径是"../test.txt"
或等同于"../../project/test.txt"
更好的位置将位于数据目录中,因此您的路径为"../data/test.txt"
答案 3 :(得分:0)
我猜这是一个Windows VS vbuild(给出后面的斜线路径)
VS会将二进制文件放在project \ bin \ debug之类的内容中。当你在VS中运行它时,它会将当前的WD设置为二进制文件的位置。
所以
a)将文件复制到正确的位置
b)更改项目属性调试设置,将当前路径设置为您希望文件所在的位置(相对)