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

1 delphi delphi-7 delphi-xe2

我有一个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"这样的完整路径时,它会选择日志文件路径并在其上写入.

请提出可能是什么问题?

Dav*_*nan 7

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

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

ExtractFilePath(ParamStr(0));
Run Code Online (Sandbox Code Playgroud)

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

ExtractFilePath(ParamStr(0)) + 'tracefile.log'
Run Code Online (Sandbox Code Playgroud)

  • @NareshKumar:不,显然是从你拥有.exe文件的文件夹**执行**.但**工作目录**不保证是同一个文件夹.创建运行.exe文件的计划任务时,"开始"字段设置初始工作目录. (5认同)