2012-08-29 63 views
0

嗨,任何人都可以幫助我獲得一個開放的文件路徑。例如:如果我打開保存在位置C:\ NewFolder \ Hello.txt中的文件,我需要從C++代碼中獲取相同的文件路徑。幫我摸索..如何獲得打開的文件路徑

+0

你是什麼意思,用「打開文件路徑」? - 「我需要從C++獲得相同的文件路徑」現在你用什麼語言獲得文件路徑「?請更準確地解釋你的問題 –

+0

你好Manuel Amstutz先生,這意味着如果我打開桌面上的文件我得到了什麼是該文件的路徑,這就是我需要的,我的問題很清楚,你沒有得到那個......就是這樣.. –

+1

我想他想要這個:「C:\ NewFolder \」? – Rookie

回答

1

您可以使用fstream的open()函數在驅動器上打開文件,然後使用getline()讀取文件。

在Windows上,您需要確保在文件路徑中跳出反斜槓,例如C:\ newFolder將被編譯器解釋爲「C:」+ newline +「ewFolder」,因此您需要編寫C:\\ newFolder。

例子:

#include <fstream> 
// [...] 
ifstream in_file; 
in_file.open("C:\\NewFolder\\Hello.txt"); 
if (in_file.good()) { // check to make sure the file was opened correctly 
    char outbuf[1024]; 
    while (in_file.getline(outbuf,1024)) { 
     // do something with outbuf 
    } 
} 

如果你正在嘗試做很多的文件I/O,你可能也想看看boost::filesystem,因而具有一定的最初的學習曲線,但使得處理文件/目錄很容易,一旦你得到它的竅門。

1

首先用這種方式在你的頭文件中聲明fstream庫。

#include <fstream> 

然後爲輸入流創建一個對象。

ifstream read ; 

以這種方式打開文件。

read.open ("C:\NewFolder\Hello.txt") ; 

我想多數民衆贊成你想說的打開文件路徑。 認爲如果將文本文件保存在同一個目錄中會更好。

0

目前還不清楚你在問什麼。

如果您想知道您保存文件的位置,那麼您保存了該文件,並且沒有必要了解路徑。這種情況下的答案只是「記住你保存的位置」。如果你想知道你打開的文件的路徑,這同樣適用。你打開它,你怎麼知道不是的路徑?

如果您想允許用戶在Windows上直觀地選擇文件,請查找GetOpenFileName