我在C:\ MyProject文件夹中有一个说myApp.exe的exe。它在logfile中写日志,例如tracefile.log,它也位于C:\ MyProject中。
现在,我必须执行一个计划任务,即Schedule1.exe,该任务还将写入位于C:\ MyProject的日志文件tracefile.log中。
好的,我创建了Schedule1.exe并将其保存在同一文件夹C:\ MyProject文件夹中,并使用此exe进行了调度。
问题:当我将日志文件的相对路径指定为“。\ tracefile.log”时,Schedule1.exe无法选择日志文件的路径。但是,当我给出完整的路径,例如“ C:\ MyProject”时,它将选择日志文件路径并在其上写入。
请提出可能是什么问题?
最佳答案
相对路径相对于流程的工作目录。进程的工作目录是在进程启动时确定的,并且可能不是包含可执行文件的目录。此外,工作目录可以在流程生命周期中更改。
在我看来,您应该提供这些文件的完整路径。您需要掌握可执行文件所在的目录。那是
ExtractFilePath(ParamStr(0));
因此,您应该使用以下代码来命名文件:
ExtractFilePath(ParamStr(0)) + 'tracefile.log'
关于delphi - 在delphi中使用两个exe文件时相对和绝对路径之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14833134/