c# - Path.GetTempPath() 总是返回 %USERPROFILE%

标签 c# .net special-folders

我编写了一个调用 System.IO.Path.GetTempPath() 函数的程序。我阅读的所有文档 (like this one)表示该函数应返回从此列表中找到的第一条路径:

  • TMP环境变量指定的路径。
  • TEMP 环境变量指定的路径。
  • USERPROFILE 环境变量指定的路径。
  • Windows 目录。

我已经将 TMPTEMP 环境变量都定义为 %USERPROFILE%\AppData\Local\Temp,但是调用GetTempPath() 总是返回我的 %USERPROFILE% 目录,而不是我为 TMPTEMP 定义的值.如何获得返回我定义的临时目录的函数?

最佳答案

这是一个环境设置。 http://msdn.microsoft.com/en-us/library/77zkk0b6.aspx

var tmp = Environment.GetEnvironmentVariable("tmp");

更新: 我转到命令提示符并做了

SET TMP=C:\Temp

然后我从命令提示符启动了 visual studio。 现在我的环境已经更新,visual studio 可以看到它。上面的代码(以及你的)对我有用。它显示了更新的环境设置。

所以我相信你必须杀死资源管理器或注销才能让新环境永久可见。

关于c# - Path.GetTempPath() 总是返回 %USERPROFILE%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17708623/

相关文章:

c# - 如何获取已打开连接的套接字 ID/句柄/描述符? (.NET,C++,德尔福)

c# - 如何将配置输出设置到特殊文件夹(LocalApplicationData)?

visual-studio-2010 - Visual Studio 解决方案——有什么方法可以创建 "special"文件夹?

c# - .Net 的 `Random` 类中的错误?

c# - SQL中如何处理时间存储

c# - LinqToXml 未按预期处理可空元素

.net - 在 Release模式下不编译方法的 .NET 属性是什么?

c# - 将 PowerBuilder 应用程序移植到 .NET

c# - 如何在 .NET 3.5 中获取 CSIDL_COMMON_DOCUMENTS 的路径?

c# - MVC 2 - 标签的数据注释?