我编写了一个调用System.IO.Path.GetTempPath()
函数的程序。我读过的所有文档(like this one)都说该函数应返回从此列表中找到的第一个路径:
我已将TMP
和TEMP
环境变量定义为%USERPROFILE%\AppData\Local\Temp
,但对GetTempPath()
的调用始终返回我的%USERPROFILE%
目录,而不是我为TMP
和TEMP
定义的值。如何让函数返回我定义的临时目录?
答案 0 :(得分:3)
这是一个环境设置。 http://msdn.microsoft.com/en-us/library/77zkk0b6.aspx
var tmp = Environment.GetEnvironmentVariable("tmp");
<强>更新强> 我去了命令提示符并做了
SET TMP=C:\Temp
然后我从命令提示符启动了visual studio。 现在我的环境已经更新,Visual Studio可以看到它。上面的代码(以及你的代码)对我有用。它显示了更新的环境设置。
所以我相信你必须杀掉资源管理器或注销才能让新的环境永久地被看到。
答案 1 :(得分:0)
启动Visual Studio后是否创建了TMP和TEMP变量?
尝试重新启动VS,或从Windows资源管理器运行该应用程序。甚至可能重启Windows。
创建流程时会将环境变量分配给流程,并且不会为该流程更改。此外,子进程从其父进程继承环境变量。因此,在创建变量之前启动的Visual Studio会话中运行应用程序意味着应用程序不会提供这些变量。因此需要重新启动。