的根目錄我有執行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 –