【问题标题】:Get the current temporary directory path in VBScript?获取VBScript中的当前临时目录路径?
【发布时间】:2009-01-08 14:04:15
【问题描述】:

VB获取当前临时目录路径的技巧:

Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long 

在 VBScript 中失败。那么?

【问题讨论】:

    标签: vbscript


    【解决方案1】:
    WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2)
    

    我花了一段时间才在 Google 上找到它。所以对于下一个寻找和我一样的人......

    【讨论】:

      【解决方案2】:
      Const WindowsFolder = 0
      
      Const SystemFolder = 1
      
      Const TemporaryFolder = 2
      
      Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
      
      Dim tempFolder: tempFolder = fso.GetSpecialFolder(TemporaryFolder)
      

      【讨论】:

      • Fabien 的回答和这个一样是正确的,但是,好的文档可以让其他人更容易阅读。
      • 这让我C:\windows。 Fabien 的回答让我找到了正确的文件夹 R:\Temp
      【解决方案3】:

      另一种可能性:

      CreateObject("WScript.Shell").ExpandEnvironmentStrings("%Temp%")
      

      【讨论】:

      • 谢谢,帕特里克,我错过了粘贴一行,但这样更好。
      • 没问题。我正要粘贴我自己的,几乎相同的答案,当我看到你击败我一秒钟......再次;)
      • 我最喜欢这个,因为它和GetSpecialFolder 一样易于使用,但不那么晦涩难懂。至少,对于任何曾经使用过 DOS 或 Windows 环境变量的人来说,这个环境变量非常直观且可以自我记录。
      【解决方案4】:

      您也可以继续使用GetTempPath API。不过,从 vbscript 调用 API 有点棘手。以下是一些关于如何从 vbscript 进行 Win32 API 调用的提示:

      Reference 1

      Reference 2

      Reference 3

      【讨论】:

      • 您可以描述的更详细。
      • 其实链接用处不大,应该是评论。
      【解决方案5】:

      完全基于AnthonyWJones' answer,这是我的解决方案:

      Public Enum SpecialFolder
          WindowsFolder = 0
          SystemFolder = 1
          TempFolder = 2
      End Enum
      
      Public Function GetFolder(folder As Integer) As String
          Dim objFSO  As Object
      
          Set objFSO = CreateObject("Scripting.FileSystemObject")
      
          GetFolder = objFSO.GetSpecialFolder(folder)
      End Function
      

      因此,例如,您可以使用GetFolder(TempFolder) 来获取用户临时文件夹的路径名。

      【讨论】:

        猜你喜欢
        • 2013-04-14
        • 2019-02-18
        • 2012-05-29
        • 1970-01-01
        • 1970-01-01
        • 2012-04-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多