L'astuce VB pour obtenir le chemin du répertoire temporaire actuel:
Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
échoue dans VBScript. Alors?
WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2)
Il m'a fallu un certain temps pour le trouver sur Google. Donc pour le prochain qui cherche le même que moi ...
Const WindowsFolder = 0
Const SystemFolder = 1
Const TemporaryFolder = 2
Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
Dim tempFolder: tempFolder = fso.GetSpecialFolder(TemporaryFolder)
Une autre possibilité:
CreateObject("WScript.Shell").ExpandEnvironmentStrings("%Temp%")
Vous pouvez également continuer à utiliser l'API GetTempPath
. C'est un peu délicat d'appeler des API depuis vbscript. Voici quelques indications sur la manière de passer des appels à l'API Win32 à partir de vbscript:
Basé entièrement sur la réponse d'AnthonyWJones , voici ma solution:
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
Ainsi, par exemple, vous utiliseriez GetFolder(TempFolder)
pour obtenir le chemin d'accès du dossier temporaire de l'utilisateur.