7

我有一个 Web 服务,它调用另一个可执行文件,它获取文件列表并将它们存储在一个临时位置,然后由 Web 服务读取。

我以为我会使用系统的临时文件夹,发现我可以使用System.IO.Path.GetTempPath函数来获取临时文件夹并将我的文件存储在这里。但是当我检查这个函数返回的输出时,它给了我

C:\Users\用户名\AppData\Local\Temp\15\

我担心路径尽头的\15。这是否意味着 GetTempPath 返回的临时文件夹不是恒定的并且不断变化?我需要它保持不变,因为我需要 Web 服务从可执行文件输出的临时文件中读取

4

2 回答 2

3

文档说:

此方法按以下顺序检查环境变量是否存在,并使用找到的第一个路径:

1.TMP环境变量指定的路径。

  1. TEMP 环境变量指定的路径。

  2. USERPROFILE 环境变量指定的路径。

  3. Windows 目录。

因此,除非您更改环境,否则结果是稳定的。

(如果您作为服务帐户运行,则可能会发生环境变化,而该帐户从未进行过交互式登录),它具有默认的 %SystemRoot%\Temp 文件夹。如果有人使用此服务帐户登录到服务器,则会创建一个配置文件并且临时路径将更改)

于 2012-06-26T16:22:19.410 回答
2

即使这篇文章有点老,我也想分享知识:-)

在终端服务器上运行时,Windows 的默认行为是为与该服务器的每个连接创建一个单独的临时子文件夹。有一些方法可以影响这一点,但在你想要这样做之前,我建议将你的文件放在其他地方。

http://blogs.msdn.com/b/oldnewthing/archive/2011/01/25/10119675.aspx

于 2014-02-21T08:42:17.970 回答