【问题标题】:How to get absolute path from path with system path variables?如何使用系统路径变量从路径获取绝对路径?
【发布时间】:2011-02-19 10:53:35
【问题描述】:

有没有一种简单的方法可以将带有系统路径变量的路径转换为绝对路径?

所以%ProgramFiles%\Internet Explorer\hmmapi.dll 变成了C:\Program Files\Internet Explorer\hmmapi.dll

我想知道是否有可以执行此操作的 API 调用,还是我必须以艰难的方式执行此操作并检测 %..% 序列并用相应的环境变量替换它们?

【问题讨论】:

    标签: delphi path absolute-path


    【解决方案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;
    

    【讨论】:

    • 是的,这就是我正在寻找的功能。我自己也发现了,终于在 google 上使用了正确的关键字。
    • ExpandEnvironmentStrings 返回包括空字符在内的长度,因此您必须从结果中减去 1 才能返回不带空终止符的字符串。
    • 在末尾添加 -1 以去除尾随 #0
    猜你喜欢
    • 2023-03-22
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多