2014-09-01 64 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