Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# path.GetTempPath()返回的路径是否保持不变?_C#_.net_Temp - Fatal编程技术网

C# path.GetTempPath()返回的路径是否保持不变?

C# path.GetTempPath()返回的路径是否保持不变?,c#,.net,temp,C#,.net,Temp,我有一个Web服务,它调用另一个可执行文件,该可执行文件获取一个文件列表并将它们存储在一个临时位置,然后由Web服务读取 我想我会使用系统的临时文件夹,并发现我可以使用system.IO.Path.GetTempPath函数获取临时文件夹并将文件存储在这里。但是当我检查这个函数返回的输出时,它给了我 C:\Users\username\AppData\Local\Temp\15\ 我很担心路的尽头。这是否意味着GetTempPath返回的临时文件夹不是常量并且不断变化?我需要它是常量,因为我需要

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

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

C:\Users\username\AppData\Local\Temp\15\

我很担心路的尽头。这是否意味着GetTempPath返回的临时文件夹不是常量并且不断变化?我需要它是常量,因为我需要web服务读取可执行文件输出的临时文件

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

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

  • 由TEMP环境变量指定的路径

  • USERPROFILE环境变量指定的路径

  • Windows目录

  • 因此,除非你改变你的环境,否则结果是稳定的

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

    即使这篇文章有点旧,我想与大家分享知识:-)

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


    ()

    在保存文件时,不要只存储文件名,而是存储整个路径。那么,它是否更改就无关紧要了。您如何控制其他可执行文件写入文件的位置?在不将文件写入磁盘的情况下,是否有可能实现可执行文件的功能?可执行文件是否以相同的身份运行?更具体地说。。。Web服务使用id作为第一个参数调用可执行文件。我的想法是,可执行文件将创建一个id作为名称一部分的文件(比如MyService_uz.jpg)。然后Web服务将从临时文件夹中读取此文件(因为它知道id)。那么,@Ben i没有存储文件名或路径,它们作为同一个用户运行在哪里?您通常不会在c:\users下看到服务帐户的tmp,为什么不添加您自己的“MY_SHARED_PATH”环境变量和.GetEnvironmentVariableit@Sadhir,为什么不将整个路径传递给可执行文件,然后Web服务可以控制文件的创建位置。@Erik:环境变量是否会为您的进程实际更改?我认为您必须显式处理某个窗口消息,以便在环境发生变化时收到通知,而实际上没有人会从外部为您的进程执行此操作。我认为,当帐户从未登录/没有配置文件时,不会设置任何路径,因此您将进入步骤4(Windows目录)。只有在创建概要文件并重新启动流程时,才会显示新的环境变量