Как получить абсолютный путь из пути с переменными системного пути?

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

Так %ProgramFiles%Internet Explorerhmmapi.dll становится C:Program FilesInternet Explorerhmmapi.dll

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

1 ответов


вы можете использовать функцию 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;