【问题标题】:GetEnvironmentVariable("TEMP") without tilde (~)GetEnvironmentVariable("TEMP") 不带波浪号 (~)
【发布时间】:2014-11-12 19:17:13
【问题描述】:

我想获取临时文件夹的路径 (C:\Users\user\AppData\Local\Temp)。

GetEnvironmentVariable("TEMP") 工作正常,但我得到了带有波浪号的路径:

C:\Users\STANHE~1\AppData\Local\Temp\

.. 我需要没有波浪号的路径:

C:\Users\StanHerrmann\AppData\Local\Temp\

【问题讨论】:

  • 为什么你觉得你需要长版本?简短的形式是完全有效的。
  • 我正在使用一个需要长版本的库。它不适用于短版

标签: c# .net environment-variables


【解决方案1】:

你可以使用Path.GetFullPath来扩展它:

如果传入的是短文件名,则会扩展为长文件名。

但是...最好只使用Path.GetTempPath,这样您就不必依赖环境变量来正确。

【讨论】:

  • 非常感谢。我会使用你的建议。 :)
  • 这两个建议都是对的,即使 Path.GetTempPath 本身最终依赖于环境变量,使用它比单独调用获取 TEMP 环境变量更安全。
  • @Richard 你是对的。 Path.GetTempPath 调用 WinAPI 函数 GetTempPath,它最终读取环境(TMP 然后 TEMP 然后 USERPROFILE 然后是 windows 目录 - 最后一个实际上困扰我现在我知道这种行为)。
猜你喜欢
  • 2019-07-07
  • 2013-08-03
  • 2014-07-15
  • 2016-09-03
  • 2013-07-25
  • 2019-04-09
  • 2016-12-06
  • 2012-10-10
  • 2011-06-06
相关资源
最近更新 更多