代码之家  ›  专栏  ›  技术社区  ›  Mike

获取系统临时文件夹?

  •  2
  • Mike  · 技术社区  · 15 年前

    我在找类似的东西 this question . 但是,我特别想动态地查找系统的临时文件夹(即服务使用的临时文件夹)的位置。

    这有可能吗?

    谢谢,

    6 回复  |  直到 7 年前
        1
  •  2
  •   ChristianLinnell    15 年前

    给你(在VBS中)

    Set environmentVars = WScript.CreateObject("WScript.Shell").Environment("Process")
    tempFolder = environmentVars("TEMP")
    msgbox(tempFolder)
    

    我不确定您的系统是否有一个名为“temp”的环境变量,所以请转到命令行并键入

    set
    

    您将得到环境变量及其值的列表。选择一个有临时文件夹的文件夹。

        2
  •  1
  •   IsmailS    15 年前
    Set objShell = CreateObject("WScript.Shell")
    Set colEnvironment = objShell.Environment("PROCESS")
    objPath = colEnvironment("temp")
    WScript.Echo objPath    
    

    在那种情况下

    Set objShell = CreateObject("WScript.Shell")
    Set colEnvironment = objShell.Environment("PROCESS")
    objPath = colEnvironment("windir")
    WScript.Echo objPath & "\temp"    
    

    希望这会有帮助

        3
  •  1
  •   Mike    15 年前

    在对此进行了一点研究之后,我认为没有办法使用环境变量来捕获另一个用户的%temp%文件夹(在本例中是系统用户)的位置。

        4
  •  1
  •   Rashid Abzalov    7 年前

    系统环境变量存储在注册表项中:hkey_local_machine\system\controlset001\control\session manager\environment

    用户的环境变量存储在注册表项中:hkey_users[user sid]\environment

    为了获取任何环境变量(特别是temp)的值,需要检查分支中是否存在指定用户的该变量。如果它在那里,那么你可以使用它。如果它不在那里,那么您需要从系统注册表分支获取一个值。

        5
  •  -1
  •   DRapp    15 年前

    在C中,它的…

    system.collections.idictionary vars=system.environment.getenvironmentvariables();

    字符串temppath=vars[“temp”];

    你得到一个完整的元素数组…路径、临时、会话名、路径文本、用户域、系统驱动器、windir等…

        6
  •  -1
  •   Cole Tobin Matt    12 年前

    也许这有点用处: System.IO.Path.GetTempPath()