1

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

现在我必须创建一个计划任务,比如 Schedule1.exe,它也将写入位于 C:\MyProject 的日志文件 tracefile.log 中。

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

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

请建议可能是什么问题?

4

1 回答 1

7

相对路径是相对于进程的工作目录的。进程的工作目录是在进程启动时确定的,可能不是可执行文件所在的目录。更重要的是,工作目录可以在进程生命周期中改变。

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

ExtractFilePath(ParamStr(0));

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

ExtractFilePath(ParamStr(0)) + 'tracefile.log'
于 2013-02-12T13:00:03.130 回答