1. Создание объекта
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
2. Свойства
2.1. Drives
Синтаксис:
Возвращаемое значение: объект-коллекция "Drives".
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each Drive In FSO.Drives
MsgBox Drive.DriveLetter
Next
Другой пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Drives = FSO.Drives
MsgBox "Всего дисков - " & Drives.Count
Set DriveC = Drives.Item("C:")
MsgBox "Диск C: имеет метку " & DriveC.VolumeName
3. Методы
3.1. CreateFolder
Синтаксис:
CreateFolder(<Foldername>)
Назначение: создаёт каталог с указанным именем.
Параметры:
<Foldername> - строка, путь к каталогу. Если такой каталог уже существует, произойдёт ошибка.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CreateFolder "C:\New Folder"
3.2. CopyFile
Синтаксис:
CopyFile(<Source>,<Destination>,<Overwrite>)
Назначение: копирует один или несколько файлов.
Параметры:
<Source> - строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?".
<Destination> - строка, путь назначения (куда копировать).
<Overwrite> - необязательный, булево (число). Перезаписывать существующие файлы, или нет. По умолчанию - True (перезаписывать). Если файл, который нужно перезаписать, имеет атрибут read-only, возникнет ошибка (независимо от установки этого параметра).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFile "C:\*.bat", "A:\", 0
3.3. CopyFolder
Синтаксис:
CopyFolder(<Source>,<Destination>,<Overwrite>)
Назначение: рекурсивно копирует каталог.
Параметры:
<Source> - строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?".
<Destination> - строка, путь назначения (куда копировать).
<Overwrite> - необязательный, булево (число). Перезаписывать существующие файлы, или нет. По умолчанию - True (перезаписывать). Если файл, который нужно перезаписать, имеет атрибут read-only, возникнет ошибка (независимо от установки этого параметра).
Описание: процесс копирования прерывается после первой возникшей ошибки.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.CopyFolder "C:\NewFolder\*", "C:\TEMP\", 0
3.4. MoveFile
Синтаксис:
MoveFile(<Source>,<Destination>)
Назначение: перемещает один или несколько файлов.
Параметры:
<Source> - строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?".
<Destination> - строка, путь назначения (куда копировать).
Описание: процесс перемещения прерывается после первой возникшей ошибки. Если перемещаемый файл уже существует или является папкой в Destination, возникнет ошибка.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.MoveFile "C:\*.txt", "A:\"
3.5. MoveFolder
Синтаксис:
MoveFolder(<Source>,<Destination>)
Назначение: рекурсивно перемещает один или несколько каталогов.
Параметры:
<Source> - строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?".
<Destination> - строка, путь назначения (куда копировать).
Описание: процесс перемещения прерывается после первой возникшей ошибки. Если перемещаемый каталог уже существует или является файлом в Destination, возникнет ошибка.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.MoveFolder "C:\New Folde*", "C:\TEMP\"
3.6. DeleteFile
Синтаксис:
DeleteFile(<Filespec>,<Force>)
Назначение: удаляет указанный файл.
Параметры:
<Filespec> - строка, путь к файлу. В последнем компоненте параметра можно использовать групповые символы "*" и "?".
<Force> - необязательный, булево (число). Определяет, удалять или нет файлы с атрибутом read-only. По умолчанию - False (не удалять).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.DeleteFile "A:\*", 0
3.7. DeleteFolder
Синтаксис:
DeleteFolder(<Folderspec>,<Force>)
Назначение: удаляет указанную папку.
Параметры:
<Folderspec> - строка, путь к папке. В последнем компоненте параметра можно использовать групповые символы "*" и "?".
<Force> - необязательный, булево (число). Определяет, удалять или нет файлы с атрибутом read-only. По умолчанию - False (не удалять).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.DeleteFolder "A:\*", 0
3.8. BuildPath
Синтаксис:
Назначение: добавляет к заданному пути новое имя. Если необходимо, вставляется "\".
Параметры:
<Path> - строка, путь.
<Name> - строка, имя файла.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Path = FSO.BuildPath("C:\Program Files", "New Folder")
MsgBox Path
Path = FSO.BuildPath("C:\Program Files\", "New Folder")
MsgBox Path
3.9. GetAbsolutePathName
Синтаксис:
GetAbsolutePathName(<Pathspec>)
Назначение: возвращает полный путь для заданного относительного пути (из текущего каталога).
Параметры:
<Pathspec> - строка, относительный путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Path = FSO.GetAbsolutePathName("..")
MsgBox Path
Path = FSO.GetAbsolutePathName(".\aaa\bbb\ccc.txt")
MsgBox Path
3.10. GetBaseName
Синтаксис:
Назначение: возвращает имя (без расширения) последнего компонента в заданном пути.
Параметры:
<Path> - строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Name = FSO.GetBaseName("Q:\aaa\bred\MySuperFile.txt")
MsgBox Name
3.11. GetExtensionName
Синтаксис:
Назначение: возвращает расширение последнего компонента в заданном пути.
Параметры:
<Path> - строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Name = FSO.GetExtensionName("Q:\aaa\bred\MySuperFile.txt")
MsgBox Name
3.12. GetFileName
Синтаксис:
Назначение: возвращает имя (с расширением) последнего компонента в заданном пути.
Параметры:
<Path> - строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Name = FSO.GetFileName("Q:\aaa\bred\MySuperFile.txt")
MsgBox Name
3.13. GetParentFolderName
Синтаксис:
GetParentFolderName(<Path>)
Назначение: возвращает путь к последнему компоненту в заданном пути (его каталог).
Параметры:
<Path> - строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Name = FSO.GetParentFolderName("Q:\aaa\bred\MySuperFile.txt")
MsgBox Name
3.14. GetDriveName
Синтаксис:
Назначение: возвращает имя диска в заданном пути.
Параметры:
<Path> - строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Name = FSO.GetDriveName("X:\aaa\bred\MySuperFile.txt")
MsgBox Name
3.15. DriveExists
Синтаксис:
Назначение: возвращает True, если указанный диск сущесвтвует, и False в противном случае.
Параметры:
<Drivespec> - строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Disk = "A:"
MsgBox "Диск " & Disk & " существует = " & FSO.DriveExists(Disk)
Disk = "Q:"
MsgBox "Диск " & Disk & " существует = " & FSO.DriveExists(Disk)
3.16. FileExists
Синтаксис:
Назначение: возвращает True, если указанный файл сущесвтвует, и False в противном случае.
Параметры:
<Filespec> - строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
File = "C:\Program Files\1Cv77\BIN\1cv7s.exe"
MsgBox "Файл " & File & " существует = " & FSO.FileExists(File)
File = "С:\1.txt"
MsgBox "Файл " & File & " существует = " & FSO.FileExists(File)
3.17. FolderExists
Синтаксис:
FolderExists(<Folderspec>)
Назначение: возвращает True, если указанный каталог сущесвтвует, и False в противном случае.
Параметры:
<Folderspec> - строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Folder = "C:\Program Files"
MsgBox "Каталог " & Folder & " существует = " & FSO.FolderExists(Folder)
Folder = "С:\ProgramFiles"
MsgBox "Каталог " & Folder & " существует = " & FSO.FolderExists(Folder)
3.18. GetDrive
Синтаксис:
Назначение: возвращает объект "Drive" по указанному имени или пути.
Параметры:
<Folderspec> - строка, имя диска или путь к корневому каталогу диска, возможно UNC-путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Drive = FSO.GetDrive("C:")
MsgBox Drive.FileSystem
Set Drive = FSO.GetDrive("C:\")
MsgBox Drive.FileSystem
Set Drive = FSO.GetDrive("\\Server\1C_Predpr")
MsgBox Drive.FileSystem
3.19. GetFile
Синтаксис:
Назначение: возвращает объект "File" по указанному пути.
Параметры:
<Filespec> - строка, путь.
Описание: если файл не существует, произойдёт ошибка.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFile("C:\autoexec.bat")
MsgBox File.Size
3.20. GetFolder
Синтаксис:
Назначение: возвращает объект "Folder" по указанному пути.
Параметры:
<Folderspec> - строка, путь.
Описание: если каталог не существует, произойдёт ошибка.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("C:\Program Files")
MsgBox Folder.ShortName
3.21. GetSpecialFolder
Синтаксис:
GetSpecialFolder(<Folderspec>)
Назначение: возвращает объект "Folder" для некоторых специальных папок Windows.
Параметры:
<Folderspec> - число, определяет специальную папку. Возможные значения:
0 - Каталог Windows.
1 - Системный каталог библиотек и драйверов.
2 - Каталог временных файлов, путь к которому хранится в переменной среды "TMP".
Описание: если каталог не существует, произойдёт ошибка.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
For i=0 To 2
Set Folder = FSO.GetSpecialFolder(i)
MsgBox Folder.Path
Next
3.22. GetTempName
Синтаксис:
Назначение: возвращает случайным образом сгенерированное имя файла, которое может быть использовано для создания временного файла.
Параметры: нет.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
MsgBox FSO.GetTempName()
3.23. CreateTextFile
Синтаксис:
CreateTextFile(<Filename>,<Overwrite>,<Unicode>)
Назначение: создаёт новый текстовый файл и возвращает объект "TextStream", указывающий на него.
Параметры:
<Filename> - строка, путь к файлу.
<Overwrite> - необязательный, булево (число). Перезаписывать файл, если он существует (True), или нет (False). По умолчанию - False. Если указано False и файл существует - произойдёт ошибка.
<Unicode> - необязательный, булево (число). Файл в формате Unicode (True), или ASCII (False). По умолчанию - False.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TextStream = FSO.CreateTextFile("C:\Test.txt")
3.24. OpenTextFile
Синтаксис:
OpenTextFile(<Filename>,<Iomode>,<Create>,<Format>)
Назначение: открывает текстовый файл и возвращает объект "TextStream", указывающий на него.
Параметры:
<Filename> - строка, путь к файлу.
<Iomode> - необязательный, число. Возможные значения:
1 - Открыть файл только для чтения.
2 - Открыть файл для записи. Если файл уже существовал, его содержимое теряется.
8 - Открыть файл для добавления. Если файл уже существовал, информация будет дописываться в конец файла.
<Create> - необязательный, булево (число). Создавать файл, если он не существует (True), или нет (False). По умолчанию - False.
<Format> - необязательный, число. Возможные значения:
-2 - Открыть файл в формате, используемом системой по умолчанию.
-1 - Открыть файл в формате Unicode.
0 - Открыть файл в формате ASCII (по умолчанию).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set TextStream = FSO.OpenTextFile("C:\Test.txt", 2, True)
3.25. GetStandardStream
Синтаксис:
GetStandardStream(<StandardStreamType>,<Unicode>)
Назначение: возвращает объект "TextStream", ассоциированный с потоком "StdIn", "StdOut" или "StdErr".
Параметры:
<StandardStreamType> - число, определяет поток. Возможные значения:
0 - StdIn.
1 - StdOut.
2 - StdErr.
<Unicode> - необязательный, булево (число). True - формат Unicode, False - ASCII. По умолчанию - False.
Описание: метод применим при запуске административного скрипта в консоли с помощью CScript.exe.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set stdout = fso.GetStandardStream(1)
stdout.WriteLine "Hello, VBScript."
3.26. GetFileVersion
Синтаксис:
Назначение: возвращает номер версии исполняемого файла (строка).
Параметры:
<Path> - строка, путь к файлу.
Описание: метод возвращает информацию, которую можно просмотреть на вкладке "Версия" палитры свойств файла в проводнике.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
MsgBox FSO.GetFileVersion("C:\Program Files\1Cv77\BIN\1cv7s.exe")
MsgBox FSO.GetFileVersion("C:\Program Files\1cv8\bin\1cv8.exe")