Как получить абсолютный путь от пути с системными переменными пути? - PullRequest
8 голосов
/ 14 мая 2010

Есть ли простой способ перевести путь с переменными системного пути в абсолютный путь?

То есть %ProgramFiles%\Internet Explorer\hmmapi.dll становится C:\Program Files\Internet Explorer\hmmapi.dll

Мне бы хотелось знать, есть ли вызов API, который может это сделать, или мне нужно сделать это сложным способом, обнаружить последовательности% ..% и заменить их соответствующей переменной среды?

1 Ответ

16 голосов
/ 14 мая 2010

Вы можете использовать функцию WinAPI ExpandEnvironmentStrings:

function ExpandEnvStr(const szInput: string): string;
  const
    MAXSIZE = 32768;
  begin
    SetLength(Result,MAXSIZE);
    SetLength(Result,ExpandEnvironmentStrings(pchar(szInput),
      @Result[1],length(Result)) - 1);
  end;
...