2014-09-01 85 views
0

我得到了同樣的錯誤,我真的不知道爲什麼。試圖在Delphi XE中打開.txt 5

在我的代碼中,我正在測試以查看.txt是否存在,它確實存在,但仍然給我錯誤「無法找到文件位置」。

我用下面的代碼:

IF Not FileExists('Some.txt') then 
    ShowMessage('Some message'); 

我做發生在同一文件夾中的程序本身的.txt文件,但它仍然表示,它沒有找到它。

我已經得到它像這樣的工作:

IF Not FileExists('F:\Delphi\TextFiles\Some.txt') then 
    ShowMessage('Some message'); 

2010年德爾福,它的工作原理沒有指定文件路徑,可以有人請我爲什麼它需要使用路徑XE 5解釋?我在家中使用XE 5​​,2010年在學校使用XE 5​​。

回答

2

您的文件名是'Some.txt'是相對路徑。相對路徑與進程工作目錄相關。通常(但並非總是),工作目錄與可執行目錄相同。顯然,流程中的工作目錄,不管它發生什麼,都不包含該名稱的文件。

如果您不確定進程工作目錄是什麼,請致電GetCurrentDir

如果您希望程序如何找到此文本文件,您需要問自己這個問題。文本文件應該放在哪裏?在與可執行文件相同的目錄中?如果是這樣,那麼當你的程序駐留在程序文件目錄下時,由於UAC而不能寫入文件。或者該文件應該位於用戶的配置文件中?或者可能是全系統的位置而不是每個用戶。只有當你清楚瞭解你想要文件的位置時,才能決定如何找到它。

+0

有無論如何看到程序試圖從哪裏找到文件?我試着將程序和.txt文件移動到安裝該程序的同一用戶,但仍然收到相同的錯誤。 – 2014-09-01 18:15:26

+1

是的,就像我說的那樣,它是工作目錄。使用'GetCurrentDir'來查詢。 – 2014-09-01 18:20:26

+0

好吧,我似乎得到它的工作。我添加了一個額外的按鈕,添加了GetCurrentDir並將其添加到RichEdit中,然後將.txt粘貼到該Dir中。再次感謝您的幫助。 – 2014-09-01 18:37:08