的根目录我有执行Delphi应用程序和当我打电话GetCurrentDir
以下回报:返回的Delphi可执行
C:\ dev的\ W32 \ 2015 \ BCSLBDemo \的Win32 \调试
当我打电话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可执行文件的根目录。
我想你需要定义你的意思是一个Delphi可执行文件的根目录。假设您将可执行文件复制到程序文件目录下的文件夹中,就像您安装它一样。什么是根目录。 FWIW,当前目录只是巧合地与可执行文件所在的目录相同。它不一定是。你的文本处理代码是非常不必要的。您可以将其全部删除并替换为标准函数调用。 –
所以,你可以编写'ExtractFileDir(ParamStr(0))'来获取包含可执行文件的目录。并提升两个目录'ExtractFileDir(ExtractFileDir(ExtractFileDir(ParamStr(0))))''。但你为什么要加强两个目录?这似乎很奇怪。如果你想得到更好的帮助,那么你应该解释你将如何处理这些信息。 –
大卫我相信我知道如何做这些事情。你的回答非常好。由于持续的火警,我没有时间进一步查看您的产品。文件解释你提到的事情在哪里?感谢Arch –