1

Тема: VBScript: генерация пути для временного файла или папки

Функция генерирует и возвращает путь для создания временного файла.

Option Explicit

Function GetTemporaryFileName()
    Const SYSTEM_FOLDER = 1
    Const TEMP_FOLDER = 2
    
    Dim objFSO
    Dim strTempFile
    
    
    Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
    
    'генерация пути к временному файлу: КаталогВременныхФайлов\ИмяВременногоФайла
    With objFSO
        Do
            strTempFile = .BuildPath(.GetSpecialFolder(TEMP_FOLDER), .GetTempName)
    
            'если такой файл существует, продолжаем попытки генерации пути:
        Loop While .FileExists(strTempFile)
    End With
    
    Set objFSO = Nothing
    
    GetTemporaryFileName = strTempFile
End Function

WScript.Echo GetTemporaryFileName()

Автор примера - alexii.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

2

Re: VBScript: генерация пути для временного файла или папки

Исправленная версия той же функции:

'=============================================================================
' Серый форум / VBScript: генерация пути для временного файла или папки
' (http://forum.script-coding.com/viewtopic.php?id=1221)
'=============================================================================
Function GetTemporaryName()
    Const TemporaryFolder = 2
    
    Dim strTempName
    
    With WScript.CreateObject("Scripting.FileSystemObject")
        Do
            strTempName = .BuildPath(.GetSpecialFolder(TemporaryFolder), .GetTempName)
        Loop While .FileExists(strTempName) Or .FolderExists(strTempName)
    End With
    
    GetTemporaryName = strTempName
End Function
'=============================================================================

+ Теперь для генерируемого имени проверяется существование не только файла, но и папки.
* Сгенерированный путь можно использовать как для создания файла, так и для создания папки.