代码之家  ›  专栏  ›  技术社区  ›  Yigang Wu

关于Win32 API中的GetTempPath函数

  •  1
  • Yigang Wu  · 技术社区  · 15 年前

    为什么 GetTempPath 总是返回短路径名?是否有方法返回长路径名,而不是随后用 GetLongPathName ?

    3 回复  |  直到 14 年前
        1
  •  4
  •   Jeffrey Hantin    15 年前

    GetTempPath 最有可能返回 TMP TEMP 环境变量(至少在Windows XP下)通常是用短路径名定义的。

    Windows似乎要从 HKEY_CURRENT_USER\Environment 初始化环境变量时的注册表项。

        2
  •  0
  •   Chris Thompson    15 年前

    与其使用gettemppath,为什么不直接获取temp环境变量的值呢?这将是一条很长的路。

        3
  •  0
  •   Alex    15 年前

    我相信这样做是出于兼容性的原因。 在旧的Windows版本中,临时路径相对较短。在最新的Windows中,此路径要长得多。许多旧应用程序可能使用固定长度(小长度)的缓冲区来检索临时路径。 如果您返回长文件名(现在这个文件名比较大),您将破坏这个旧程序,因为它们的缓冲区太小,无法容纳它。这就是gettemppath返回短路径名的原因。