【问题标题】:Conflict between relative and absolute path while using two exe file in delphi在delphi中使用两个exe文件时相对路径和绝对路径之间的冲突
【发布时间】:2013-02-12 12:57:50
【问题描述】:

我在 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”这样的完整路径时,它会选择日志文件路径并在上面写入。

请提出可能是什么问题?

【问题讨论】:

    标签: delphi delphi-xe2 delphi-7


    【解决方案1】:

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

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

    ExtractFilePath(ParamStr(0));
    

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

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

    【讨论】:

    • Heffernam - 你的意思是说,当我使用第二个 exe 进行计划任务时,该 exe 由窗口任务调度程序在其他地方执行,而不是在我实际保存它的文件夹中?
    • @NareshKumar:不,很明显,它是从您拥有 .exe 文件的文件夹中执行的。但 工作目录 不能保证是同一个文件夹。当您创建运行 .exe 文件的计划任务时,“开始于”字段设置初始工作目录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    • 2010-09-15
    • 2011-08-11
    • 2013-07-14
    • 2010-12-17
    • 1970-01-01
    相关资源
    最近更新 更多