如何使用 JCL 的 TJclCommandLineTool 设置工作目录?

How to set the working directory using JCL's TJclCommandLineTool?

我在我的项目中使用 JCL Delphi library。下面是我的代码。

// uses JclSysUtils;

var cmd := TJclCommandLineTool.Create(parts[0]);
if cmd.Execute(params) then
begin
    ...
end;

如您所见,我使用TJclCommandLineTool调用外部命令行程序。问题是外部程序总是 运行 在我启动应用程序的当前目录中。我想知道如何将自定义工作目录传递给外部程序。 JCL的文档很烂,找不到相关资料

TJclCommandLineTool 没有这样的选项。最简单的方法:

//uses  System.IOUtil;
var oldDir := TDirectory.GetCurrentDirectory;
try
TDirectory.SetCurrentDirectory(ANewProgramDir);
var cmd := TJclCommandLineTool.Create(parts[0]);
if cmd.Execute(params) then
begin
//      ...
end;
finally
TDirectory.SetCurrentDirectory(oldDir);
end;