我有一个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”这样的完整路径时,它会选择日志文件路径并在其上写入。
请建议可能出现的问题?
答案 0 :(得分:7)
相对路径相对于流程的工作目录。进程的工作目录在进程启动时确定,可能不是包含可执行文件的目录。更重要的是,工作目录可以在流程生命期间发生变化。
在我看来,你应该提供这些文件的完整路径。您需要掌握可执行文件所在的目录。那是
ExtractFilePath(ParamStr(0));
所以你应该使用这段代码命名你的文件:
ExtractFilePath(ParamStr(0)) + 'tracefile.log'