delphi - 返回Delphi可执行文件的根目录

标签 delphi directory root delphi-xe8

我正在执行一个 Delphi 应用程序,当我调用 GetCurrentDir 时,将返回以下内容:

C:\dev\w32\2015\BCSLBDemo\Win32\Debug

当我调用 ExtractFileDir(GetCurrentDir()) 时,我收到以下内容:

C:\dev\w32\2015\BCSLBDemo\Win32

我想要的是C:\dev\w32\2015\BCSLBDemo

function RetRoot: string;
var
  i: Integer;
  buf: string;
begin
  Result := '';
  buf := ExtractFileDir(GetCurrentDir());
  i := Length(buf);
  repeat
    dec(i);
  until (buf[i] = '\') or (i < 3);
  if buf[i] = '\' then
  begin
    Delete(buf, i, Length(buf));
    Result := buf;
  end;
end;

我编写这个函数是为了得到想要的结果。我想知道是否有更好的方法来完成检索 Delphi 可执行文件的根目录。

最佳答案

还有另一种方法:

ExpandFileName(GetCurrentDir + '\..\..\'); // Current folder
ExpandFileName(ExtractFileDir(Application.ExeName) + '\..\..\'); // Exe folder

C:\dev\w32\2015\BCSLBDemo

如您所见,将使您上升两个级别。

当然,这只是回答“如何升级 2 级”的问题。关于Exe root的问题有点无意义。您可能只需要配置项目设置,不要创建 Win32\Debug 文件夹或将数据文件移动到其中;-)

关于delphi - 返回Delphi可执行文件的根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32869919/

相关文章:

delphi - 使用 Delphi 5 在 ListView 单元格中插入组合框

c++ - 如何使用 Windows API C++ 更改已创建的文件夹/目录安全权限

c++ - 从 C++ 中的文件名获取完整路径

Java 的 createNewFile() - 它还会创建目录吗?

javascript - 将 Jquery 添加到我的服务器 (localhost) 中的根文件夹

android - 如何让安卓设备始终处于唤醒模式?

delphi - 双击Windows Service可执行文件进行配置

sql - 选择 AS 在 interbase 中不起作用

node.js - 使用 pm2 以 root 身份启动应用程序

delphi - 如何从命令行重新创建 "default".res 文件?