在delphi中使用两个exe文件时相对路径和绝对路径之间的冲突

时间:2013-02-12 12:57:50

标签: delphi delphi-xe2 delphi-7

我有一个exe在C:\ MyProject文件夹中说myApp.exe。它将日志写入logfile,如tracefile.log,它也存在于C:\ MyProject中。

现在我必须制定一个计划任务说Schedule1.exe,它也会写在位于C:\ MyProject的logfile tracefile.log中。

好的,我创建了Schedule1.exe并将其保存在同一文件夹C:\ MyProject文件夹中,并使用此exe进行了计划。

问题:当我将日志文件的相对路径设为“。\ tracefile.log”时,Schedule1.exe无法选择日志文件的路径。但是当我提供像“C:\ MyProject”这样的完整路径时,它会选择日志文件路径并在其上写入。

请建议可能出现的问题?

1 个答案:

答案 0 :(得分:7)

相对路径相对于流程的工作目录。进程的工作目录在进程启动时确定,可能不是包含可执行文件的目录。更重要的是,工作目录可以在流程生命期间发生变化。

在我看来,你应该提供这些文件的完整路径。您需要掌握可执行文件所在的目录。那是

ExtractFilePath(ParamStr(0));

所以你应该使用这段代码命名你的文件:

ExtractFilePath(ParamStr(0)) + 'tracefile.log'