3

我编写了一个调用该System.IO.Path.GetTempPath()函数的程序。我读过的所有文档(比如这个)都说函数应该返回从这个列表中找到的第一个路径:

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

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

4

2 回答 2

3

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

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

更新: 我去了一个命令提示符并做了

SET TMP=C:\Temp

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

因此,我相信您必须杀死 explorer 或注销才能永久看到新环境。

于 2013-07-17T19:37:34.947 回答
0

您是否在启动 Visual Studio 后创建了 TMP 和 TEMP 变量?

尝试重新启动 VS,或从 Windows 资源管理器运行应用程序。甚至可能重新启动 Windows。

环境变量在创建进程时分配给进程,并且不会针对该进程更改。此外,子进程从其父进程继承环境变量。因此,从在创建变量之前启动的 Visual Studio 会话运行应用程序意味着应用程序将没有这些变量可用。所以需要重启。

于 2013-07-17T19:32:39.323 回答