2010-09-22 334 views
2

我想解析一個txt文件,我想引用它相對於我當前的目錄位置。如果我將文件路徑完全放入,它將會正常工作,但是我嘗試使用 .. \ src \ test.txt它不會找到它。這不是正確的方式來引用一個文件相對於一個目錄嗎?如何用相對路徑打開C文件?

如果你在一個字符串把「.. \ SRC \ test.txt的」恆任何幫助,將不勝感激

+0

顯示打開該文件的位置的代碼。 – nos 2010-09-22 18:06:29

回答

10

,你需要所有的反斜線讓‘\ t’和‘\ s’是不翻番不被解釋爲轉義序列。 (或者,您可以使用正斜槓代替,這是更便攜的。)

3

這取決於當前工作目錄設置爲。默認情況下,如果您從資源管理器雙擊應用程序,則該目錄是可執行文件所在的目錄,或者如果從命令提示符啓動,則shell所在的當前路徑。

如果test.txt位於c:\ code \ app \ src並且您的應用程序位於c:\ code \ app中,則相對路徑「.. \ src \ test.txt」將以c: \ code \ src \ test.txt(如果從資源管理器啓動)。

嘗試打印_getcwd的輸出之前,嘗試打開文件以驗證哪個目錄是當前工作目錄。

0

假設你的目錄結構如下:

 
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"

+0

Blech!爲什麼我的標籤無法正常工作? – 2010-09-22 18:27:21

0

我想這是VS vbuild一個窗口(給出的背面斜線路徑)

VS會已經把二進制的類似項目\ BIN \調試。當你在VS中運行它時,它會將當前的WD設置爲二進制文件的位置。

所以

一)文件複製到正確的地方

B)更改項目屬性調試安裝說設置當前路徑到你期望的文件是(相對的位置)