Создание, копирование, перемещение и удаление папок в VBA Excel методами объекта FileSystemObject. Удаление папок с помощью оператора RmDir.
Создание папки (метод CreateFolder)
CreateFolder – это метод объекта FileSystemObject, предназначенный для создания новой папки.
Синтаксис
object.CreateFolder (foldername) |
Параметр foldername
можно в скобки не заключать.
Параметры
Параметр | Описание |
---|---|
object | Переменная, возвращающая объект FileSystemObject. |
foldername | Строковое выражение, указывающее папку, которую необходимо создать. |
Если папка, указанная параметром foldername
уже существует, произойдет ошибка.
Копирование папки (метод CopyFolder)
CopyFolder – это метод объекта FileSystemObject, предназначенный для копирования папки из одного расположения в другое.
Синтаксис
object.CopyFolder source, destination, [overwrite] |
Параметры
Параметр | Описание |
---|---|
object | Переменная, возвращающая объект FileSystemObject. |
source | Строковое выражение, указывающее папку, которую требуется скопировать в другое расположение. Для копирования нескольких папок используются подстановочные знаки. |
destination | Строковое выражение, задающее конечное расположение, куда требуется скопировать папку (папки) со всеми вложениями из элемента source. Подстановочные знаки не допускаются. |
overwrite | Логическое значение, которое указывает, требуется ли перезаписывать существующие папки и файлы в конечном расположении. True – папки и файлы будут перезаписаны, False – перезапись не выполняется. Необязательный параметр. По умолчанию – True. |
Перемещение папки (метод MoveFolder)
MoveFolder – это метод объекта FileSystemObject, предназначенный для перемещения папки из одного расположения в другое.
Синтаксис
object.MoveFolder (source, destination) |
Параметры
Параметр | Описание |
---|---|
object | Переменная, возвращающая объект FileSystemObject. |
source | Строковое выражение, указывающее папку, которую требуется переместить в другое расположение. Для перемещения нескольких папок используются подстановочные знаки. |
destination | Строковое выражение, задающее конечное расположение, куда требуется переместить папку (папки) со всеми вложениями из элемента source. Подстановочные знаки не допускаются. |
Удаление папки (метод DeleteFolder)
DeleteFolder – это метод объекта FileSystemObject, предназначенный для удаления папки с диска со всем ее содержимым.
Синтаксис
object.DeleteFolder folderspec, [force] |
Параметры
Параметр | Описание |
---|---|
object | Переменная, возвращающая объект FileSystemObject. |
folderspec | Строковое выражение, указывающее папку, которую следует удалить. Для удаления нескольких папок используются подстановочные знаки. |
force | Значение типа Boolean: True – удаляются все папки, False (по умолчанию) – не удаляются папки с атрибутом «только для чтения» (необязательный параметр). |
Метод DeleteFolder
удаляет папки независимо от того, есть ли в них содержимое или нет.
Удаление папки (оператор RmDir)
RmDir – это оператор, предназначенный для удаления пустых папок и каталогов.
Синтаксис
- path – строковое выражение, определяющее каталог или папку, которую необходимо удалить.
Если удаляемый каталог или папка содержит файлы, произойдет ошибка.
Примеры
Пример 1
Создание папок в VBA Excel с помощью метода CreateFolder:
Sub Primer1() Dim fso As Object, i As Integer ‘Создаем новый экземпляр FileSystemObject Set fso = CreateObject(«Scripting.FileSystemObject») ‘Создаем несколько новых папок With fso .CreateFolder («C:Папка главная») For i = 1 To 5 .CreateFolder «C:Папка главнаяПапка « & i Next End With End Sub |
В результате работы этого кода на диске C
будет создана Папка главная
и в ней еще 5 папок, которые будем использовать для копирования, перемещения и удаления.
Пример 2
Копирование папок в VBA Excel с помощью метода CopyFolder:
Sub Primer2() Dim fso As Object Set fso = CreateObject(«Scripting.FileSystemObject») ‘Копируем папки With fso .CopyFolder «C:Папка главнаяПапка 2», «C:Папка главнаяПапка 1» .CopyFolder «C:Папка главнаяПапка 3«, «C:Папка главнаяПапка 1Папка 2« End With End Sub |
Код этого примера копирует папки следующим образом: Папка 2
в Папка 1
, а Папка 3
в расположение Папка 1Папка 2
.
Пример 3
Перемещение папок в VBA Excel с помощью метода MoveFolder:
Sub Primer3() Dim fso As Object Set fso = CreateObject(«Scripting.FileSystemObject») ‘Перемещаем папки With fso .MoveFolder «C:Папка главнаяПапка 3», «C:Папка главнаяПапка 2» .MoveFolder «C:Папка главнаяПапка 4«, «C:Папка главнаяПапка 2« .MoveFolder «C:Папка главнаяПапка 5», «C:Папка главнаяПапка 2Папка 4« End With End Sub |
Пример 4
Удаление папок в VBA Excel с помощью метода DeleteFolder:
Sub Primer4() Dim fso As Object Set fso = CreateObject(«Scripting.FileSystemObject») ‘Удаляем папки с содержимым With fso .DeleteFolder «C:Папка главнаяПапка 1» .DeleteFolder «C:Папка главнаяПапка 2» End With End Sub |
Пример 5
Удаление пустой папки в VBA Excel с помощью оператора RmDir:
Sub Primer5() ‘Удаляем пустую папку RmDir «C:Папка главная» End Sub |
Что-то пошло не так, в предыдущем сообщений, мой текст не сохранился, только код (
В общем!
Есть «файл-обработчик» — наша часть, только для чтения который (т.е. перезаписать его нельзя)
Есть «файл-источник» — клиентская часть, заполняет клиент, отправляет нам
Суть макроса! Получаем «файл-источник», открываем «файл-обработчик», запускаем макрос, в диалоге выбираем «файл-источник», макрос парсит файл и пересохраняет «файл-обработчик» с нужным именем уже из нового «файла-обработчика» формируются .csv-файлы для дальнейшей обработки другой программой
Сейчас появились задачи по допиливанию макроса, и я никак не могу с ними справиться((
1. Появилась задача, чтобы файл сохранялся в новую папку с нужным именем относительно директории в которой лежит «файл-обработчик» — сделано
Часть кода 71 — 77
2. И необходимо, чтобы «файл-источник» перемещался после обработки в эту же созданную папку
Бьюсь уже целый день, не могу решить (((((((
Помогите пожалуйста
Код макроса упросил, убрал оттуда циклы и всю лишнюю информацию
Please test this code in a test folder before working with your original files. Create copies or dummy files, any failure can damage your existing files….
First, separate this move function taking the name and destination of the path:
Sub Move_Rename_Folder(FromPath as string, ToPath as string)
'to do these two lines, go to tools, references and add Microsoft.Scripting.Runtime
'it's a lot easier to work like this
Dim fso As FileSystemObject
Set fso = new FileSystemObject
'you don't need to set paths anymore, they come as the arguments for this sub
If Right(FromPath, 1) = "" Then
FromPath = Left(FromPath, Len(FromPath) - 1)
End If
If Right(ToPath, 1) = "" Then
ToPath = Left(ToPath, Len(ToPath) - 1)
End If
If fso.FolderExists(FromPath) = False Then
MsgBox FromPath & " doesn't exist"
Exit Sub
End If
If fso.FolderExists(ToPath) = True Then
MsgBox ToPath & " exist, not possible to move to a existing folder"
Exit Sub
End If
fso.MoveFolder Source:=FromPath, Destination:=ToPath
MsgBox "The folder is moved from " & FromPath & " to " & ToPath
End Sub
Then, create a main Sub to run over the column «B» (from path) and Column «C» (to path), for instance:
Sub MainSub()
Dim CurrentFrom as Range, CurrentTo as Range
'get B2, assuming your B1 is a header, not a folder
Set CurrentFrom = ThisWorkbook.Worksheets("yoursheetname").Range("B2")
'get C2, assuming your C1 is a header
Set CurrentTo = ThisWorkbook.Worksheets("yoursheetname").Range("C2")
'get the actual values - paths - from cells
Dim ToPath as string, FromPath as string
ToPath = CurrentTo.value
FromPath = CurrentFrom.Value
'loop while your current frompath is not empty
Do while FromPath <> ""
'calls the move function from frompath to topath
Call Move_Rename_Folder(FromPath, ToPath)
'offsets the cells one row down
Set CurrentFrom = CurrentFrom.Offset(1,0)
Set CurrentTo = CurrentTo.Offset(1,0)
'gets the values of the new cells
FromPath = CurrentFrom.Value
ToPath = CurrentTo.Value
Loop
End Sub
Обидевшись на ваши ответы, и посидев немного с VBA все таки написал скрипт, хоть и вышел за пределы сроков. Надеюсь вам пригодится, так что я выложу его сюда
Sub Кнопка1_Щелчок()
Dim i As Long
Dim ActWB As Workbook
Dim avInp(), fl As Object
Dim Kol_pid, Pid, kol1 As Integer
Dim Stolbec, StrokaOtsch As Integer
Dim NameFile() As String
Dim NewFoldPth, OldFoldPth, FoldPth, NewFolder1, NewFolder As String
Dim ki, counter As Long
Dim Fiyli() As String
Dim Stolbec1 As String
Dim iSheet As Integer ' Индекс листа
Dim sFPName As String ' Имя последней папки перед нумерацией
Set FSO = CreateObject("Scripting.FileSystemObject")
Stolbec1 = Application.InputBox("Укажите номер столбца, в котором находятся наименования файлов", "Номер столбца", "3")
Kol_pid = Application.InputBox("Укажите количество файлов в папке",
"Номер папки", "3")
StrokaOtsch = Application.InputBox("Укажите номер строки начала данных", "Номер строки", "3")
StolbecOut = Application.InputBox("Укажите номер столбца куда писать пути", _ "Номер столбца", "3")
Stolbec = CInt(Stolbec1)
StrokaOtsch = CInt(StrokaOtsch)
StolbecOut = CInt(StolbecOut)
Application.ScreenUpdating = False
i1_n = Cells(Rows.Count, Stolbec).End(xlUp).Row
Set ActWB = ActiveWorkbook
iSheet = ActiveSheet.Index
' NewFolder = Application.InputBox("Укажите имя папки, в которую необходимо перенести файлы", "Имя новой папки", _
' "Файлы из списка")
' StrokaOtsch = Application.InputBox("Укажите номер строки, в которой находится шапка таблицы", _
' "Номер строки", "1")
' NewFolder = "fileout"
' counter = 3
' StrokaOtsch = "1"
Pid = 1
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Папка Откуда копировать файлы"
.ButtonName = "Select": .AllowMultiSelect = False
If .Show Then FoldPth = .SelectedItems(1) Else Exit Sub
End With
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Папка Куда копировать файлы"
.ButtonName = "Select": .AllowMultiSelect = False
If .Show Then NewFolderPath = .SelectedItems(1) Else Exit Sub
'MsgBox (.SelectedItems(1))
End With
'NewFolderPath = NewFolderPath & ""
Time_1 = Timer
If Right(NewFolder, 1) <> "" Then NewFolder = NewFolder & ""
If Right(FoldPth, 1) <> "" Then FoldPth = FoldPth & ""
bbb = Split(NewFolderPath, "")
sFPName = bbb(UBound(bbb))
ReDim NameFile(i1_n - StrokaOtsch)
'For i1 = 1 To i1_n - StrokaOtsch + 1
' If Cells(StrokaOtsch + i1 - 1, Stolbec) <> "" Then
' n = n + 1
' NameFile(n) = Cells(StrokaOtsch + i1 - 1, Stolbec)
' End If
' Next i1
ReDim Preserve NameFile(n)
Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO
If Not .FolderExists(NewFolderPath & "" & Pid & "") Then .CreateFolder NewFolderPath & "" & Pid & ""
'создание нового каталога куда копировать каталога
With .GetFolder(FoldPth)
' If .Files.Count = 0 Then MsgBox "Файлов в указанном пути не найдено", 48: Exit Sub
'проверка наличия файлов откуда происходит копирование
' ReDim Fiyly(.Files.Count)
' For Each fl In .Files
' ki = ki + 1
' Fiyly(ki) = fl.Name
' MsgBox (Fiyly(ki)) Заполнение массива именами файлов, находящихся в каталоге которые надо копировать
' Next fl
kol1 = 1
For i1 = StrokaOtsch To i1_n
' For i = 1 To UBound(Fiyly)
If Cells(i1, Stolbec) <> "" Then
' MsgBox (Cells(i1, Stolbec))
' NameFile(i1) = Cells(i1, Stolbec)
' If Fiyly(i) = NameFile(i1) Then
If kol1 = Kol_pid + 1 Then
Pid = Pid + 1
With FSO
If Not .FolderExists(NewFolderPath & "" & Pid & "") Then .CreateFolder NewFolderPath & "" & Pid & ""
End With
kol1 = 1
End If
' MsgBox (FoldPth & NameFile(i1) & "Новая куда" & NewFolderPath)
If FSO.FileExists(FoldPth & Cells(i1, Stolbec)) Then
Kol = Kol + 1
kol1 = kol1 + 1
FSO.MoveFile FoldPth & Cells(i1, Stolbec), NewFolderPath & "" & Pid & ""
ActWB.Sheets(iSheet).Cells(i1, StolbecOut).Value = sFPName & "" & Pid & "" & Cells(i1, Stolbec)
End If
' End If
' Next i
End If
Next i1
End With
End With
time_ = Time_1 - Timer
Time_delta = Format(time_ / 24 / 60 / 60, "hhч mmм ssс")
Application.ScreenUpdating = True
MsgBox ("Выполнено за " & Time_delta & Chr(13) & "Количество перемещённых файлов :" & Kol)
End Sub
Return to VBA Code Examples
In this Article
- Move Files with VBA FileSystemObject
- Set VBA Reference
- FileSystemObject
- Move One File
- Move Multiple Files
- Move File to a New Folder
- Move Folders
This tutorial will demonstrate how to use the MoveFile method of the FileSystemObject.
Move Files with VBA FileSystemObject
The MoveFile method moves one or more files from one location to another.
Set VBA Reference
First, when using FileSystemObject, you may have to set a reference to the VB script run-time library: open the Visual Basic Editor (ALT + F11), select Tools > References from the drop-down menu and tick the check-box of ‘Microsoft Scripting Runtime’.
FileSystemObject
Second, you must create the FileSystemObject:
Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
Now you have access to MoveFile, and the other FileSystemObject Methods.
Move One File
To move a single file, you can use the simple syntax of FSO.MoveFile( source, destination ).
FSO.MoveFile "C:SrcTestFile.txt", "C:DstModTestFile.txt"
As mentioned above, first you need to create the FileSystemObject:
Sub FSOMoveFile()
Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.MoveFile "C:SrcTestFile.txt", "C:DstModTestFile.txt"
End Sub
Move Multiple Files
You can move multiple files with same name parts:
FSO.MoveFile "C:SrcTestFile*.txt", "C:Dst"
Or you can move multiple files with the same extension:
FSO.MoveFile "C:Src *.xlsx", "C:Dst"
Or simply all files from a folder:
FSO.MoveFile "C:Src*", "C:Dst"
Notice, here we make use of the * wildcard character.
Instead of using the * wildcard, you can move all files in a folder using a For Each loop.
Sub FSOMoveAllFiles ()
Dim FSO As New FileSystemObject
Dim FromPath As String
Dim ToPath As String
Dim FileInFromFolder As Object
FromPath = "C:Src"
ToPath = "C:Dst"
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each FileInFromFolder In FSO.GetFolder(FromPath).Files
FileInFromFolder.Move ToPath
Next FileInFromFolder
End Sub
Move File to a New Folder
You can move the file(s) into a newly created folder as well. To do so, add the command
MkDir "C:Dst"
before declaring the destination path.
Sub FSOMoveAllFiles ()
Dim FSO As New FileSystemObject
Dim FromPath As String
Dim ToPath As String
Dim FileInFromFolder As Object
FromPath = "C:Src"
MkDir "C:Dst"
ToPath = "C:Dst"
Set FSO = CreateObject("Scripting.FileSystemObject")
For Each FileInFromFolder In FSO.GetFolder(FromPath).Files
FileInFromFolder.Move ToPath
Next FileInFromFolder
End Sub
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
Learn More
Move Folders
You can use the analogue method MoveFolder for moving folders.
Sub FSOMoveFolder()
Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.MoveFolder "C:OldFolder", "C:DstNewFolder"
End Sub
Содержание
- Объект FileSystemObject
- 1. Создание объекта
- 2. Свойства
- 2.1. Drives
- 3. Методы
- 3.1. CreateFolder
- 3.2. CopyFile
- 3.3. CopyFolder
- 3.4. MoveFile
- 3.5. MoveFolder
- 3.6. DeleteFile
- 3.7. DeleteFolder
- 3.8. BuildPath
- 3.9. GetAbsolutePathName
- 3.10. GetBaseName
- 3.11. GetExtensionName
- 3.12. GetFileName
- 3.13. GetParentFolderName
- 3.14. GetDriveName
- 3.15. DriveExists
- 3.16. FileExists
- 3.17. FolderExists
- 3.18. GetDrive
- 3.19. GetFile
- 3.20. GetFolder
- 3.21. GetSpecialFolder
- 3.22. GetTempName
- 3.23. CreateTextFile
- 3.24. OpenTextFile
- 3.25. GetStandardStream
- 3.26. GetFileVersion
- 4. Объект Drive
- 4.1. Создание объекта
- 4.2. Свойства
- 4.2.1. AvailableSpace
- 4.2.2. DriveLetter
- 4.2.3. DriveType
- 4.2.4. FileSystem
- 4.2.5. FreeSpace
- 4.2.6. IsReady
- 4.2.7. Path
- 4.2.8. RootFolder
- 4.2.9. SerialNumber
- 4.2.10. ShareName
- 4.2.11. TotalSize
- 4.2.12. VolumeName
- 5. Объект File
- 5.1. Создание объекта
- 5.2. Свойства
- 5.2.1. Attributes
- 5.2.2. DateCreated
- 5.2.3. DateLastAccessed
- 5.2.4. DateLastModified
- 5.2.5. Drive
- 5.2.6. Name
- 5.2.7. ParentFolder
- 5.2.8. Path
- 5.2.9. ShortName
- 5.2.10. ShortPath
- 5.2.11. Size
- 5.2.12. Type
- 5.3. Методы
- 5.3.1. Copy
- 5.3.2. Move
- 5.3.3. Delete
- 5.3.4. OpenAsTextStream
- 6. Объект Folder
- 6.1. Создание объекта
- 6.2. Свойства
- 6.2.1. Attributes
- 6.2.2. DateCreated
- 6.2.3. DateLastAccessed
- 6.2.4. DateLastModified
- 6.2.5. Drive
- 6.2.6. IsRootFolder
- 6.2.7. Name
- 6.2.8. ParentFolder
- 6.2.9. Path
- 6.2.10. ShortName
- 6.2.11. ShortPath
- 6.2.12. Size
- 6.2.13. Type
- 6.2.14. SubFolders
- 6.2.15. Files
- 6.3. Методы
- 6.3.1. Copy
- 6.3.2. Move
- 6.3.3. Delete
- 6.3.4. CreateTextFile
- 7. Объект TextStream
- 7.1. Создание объекта
- 7.2. Свойства
- 7.2.1. AtEndOfLine
- 7.2.2. AtEndOfStream
- 7.2.3. Column
- 7.2.4. Line
- 7.3. Методы
- 7.3.1. Close
- 7.3.2. Read
- 7.3.3. ReadAll
- 7.3.4. ReadLine
- 7.3.5. Skip
- 7.3.6. SkipLine
- 7.3.7. Write
- 7.3.8. WriteLine
- 7.3.9. WriteBlankLines
Объект FileSystemObject
Ниже приведен справочник по объекту FileSystemObject, который умеет работать с файлами, каталогами, файловыми потоками. Данный объект позволяет читать файлы, писать в файлы, получать информацию о файлах и др. Данный объект используется в ОС Windows, в некоторых скриптовых языках.
1. Создание объекта 2. Свойства 2.1. Drives 3. Методы 3.1. CreateFolder 3.2. CopyFile 3.3. CopyFolder 3.4. MoveFile 3.5. MoveFolder 3.6. DeleteFile 3.7. DeleteFolder 3.8. BuildPath 3.9. GetAbsolutePathName 3.10. GetBaseName 3.11. GetExtensionName 3.12. GetFileName 3.13. GetParentFolderName 3.14. GetDriveName 3.15. DriveExists 3.16. FileExists 3.17. FolderExists 3.18. GetDrive 3.19. GetFile 3.20. GetFolder 3.21. GetSpecialFolder 3.22. GetTempName 3.23. CreateTextFile 3.24. OpenTextFile 3.25. GetStandardStream 3.26. GetFileVersion 4. Объект Drive 4.1. Создание объекта 4.2. Свойства 4.2.1. AvailableSpace 4.2.2. DriveLetter 4.2.3. DriveType 4.2.4. FileSystem 4.2.5. FreeSpace 4.2.6. IsReady 4.2.7. Path 4.2.8. RootFolder 4.2.9. SerialNumber 4.2.10. ShareName 4.2.11. TotalSize 4.2.12. VolumeName 5. Объект File 5.1. Создание объекта 5.2. Свойства 5.2.1. Attributes 5.2.2. DateCreated 5.2.3. DateLastAccessed 5.2.4. DateLastModified 5.2.5. Drive 5.2.6. Name 5.2.7. ParentFolder 5.2.8. Path 5.2.9. ShortName 5.2.10. ShortPath 5.2.11. Size 5.2.12. Type 5.3. Методы 5.3.1. Copy 5.3.2. Move 5.3.3. Delete 5.3.4. OpenAsTextStream 6. Объект Folder 6.1. Создание объекта 6.2. Свойства 6.2.1. Attributes 6.2.2. DateCreated 6.2.3. DateLastAccessed 6.2.4. DateLastModified 6.2.5. Drive 6.2.6. IsRootFolder 6.2.7. Name 6.2.8. ParentFolder 6.2.9. Path 6.2.10. ShortName 6.2.11. ShortPath 6.2.12. Size 6.2.13. Type 6.2.14. SubFolders 6.2.15. Files 6.3. Методы 6.3.1. Copy 6.3.2. Move 6.3.3. Delete 6.3.4. CreateTextFile 7. Объект TextStream 7.1. Создание объекта 7.2. Свойства 7.2.1. AtEndOfLine 7.2.2. AtEndOfStream 7.2.3. Column 7.2.4. Line 7.3. Методы 7.3.1. Close 7.3.2. Read 7.3.3. ReadAll 7.3.4. ReadLine 7.3.5. Skip 7.3.6. SkipLine 7.3.7. Write 7.3.8. WriteLine 7.3.9. WriteBlankLines
1. Создание объекта
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
2. Свойства
2.1. Drives
Синтаксис:
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
Синтаксис:
BuildPath(<Path>,<Name>)
Назначение: добавляет к заданному пути новое имя. Если необходимо, вставляется «».
Параметры:
- <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(".aaabbbccc.txt") MsgBox Path
3.10. GetBaseName
Синтаксис:
GetBaseName(<Path>)
Назначение: возвращает имя (без расширения) последнего компонента в заданном пути.
Параметры:
- <Path> — строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Name = FSO.GetBaseName("Q:aaabredMySuperFile.txt") MsgBox Name
3.11. GetExtensionName
Синтаксис:
GetExtensionName(<Path>)
Назначение: возвращает расширение последнего компонента в заданном пути.
Параметры:
- <Path> — строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Name = FSO.GetExtensionName("Q:aaabredMySuperFile.txt") MsgBox Name
3.12. GetFileName
Синтаксис:
GetFileName(<Path>)
Назначение: возвращает имя (с расширением) последнего компонента в заданном пути.
Параметры:
- <Path> — строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Name = FSO.GetFileName("Q:aaabredMySuperFile.txt") MsgBox Name
3.13. GetParentFolderName
Синтаксис:
GetParentFolderName(<Path>)
Назначение: возвращает путь к последнему компоненту в заданном пути (его каталог).
Параметры:
- <Path> — строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Name = FSO.GetParentFolderName("Q:aaabredMySuperFile.txt") MsgBox Name
3.14. GetDriveName
Синтаксис:
GetDriveName(<Path>)
Назначение: возвращает имя диска в заданном пути.
Параметры:
- <Path> — строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Name = FSO.GetDriveName("X:aaabredMySuperFile.txt") MsgBox Name
3.15. DriveExists
Синтаксис:
DriveExists(<Drivespec>)
Назначение: возвращает 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
Синтаксис:
FileExists(<Filespec>)
Назначение: возвращает True, если указанный файл сущесвтвует, и False в противном случае.
Параметры:
- <Filespec> — строка, путь.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") File = "C:Program Files1Cv77BIN1cv7s.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
Синтаксис:
GetDrive(<Folderspec>)
Назначение: возвращает объект «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("\Server1C_Predpr") MsgBox Drive.FileSystem
3.19. GetFile
Синтаксис:
GetFile(<Filespec>)
Назначение: возвращает объект «File» по указанному пути.
Параметры:
- <Filespec> — строка, путь.
Описание: если файл не существует, произойдёт ошибка.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") MsgBox File.Size
3.20. GetFolder
Синтаксис:
GetFolder(<Folderspec>)
Назначение: возвращает объект «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
Синтаксис:
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
Синтаксис:
GetFileVersion(<Path>)
Назначение: возвращает номер версии исполняемого файла (строка).
Параметры:
- <Path> — строка, путь к файлу.
Описание: метод возвращает информацию, которую можно просмотреть на вкладке «Версия» палитры свойств файла в проводнике.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") MsgBox FSO.GetFileVersion("C:Program Files1Cv77BIN1cv7s.exe") MsgBox FSO.GetFileVersion("C:Program Files1cv8bin1cv8.exe")
4. Объект Drive
4.1. Создание объекта
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.Drives.Item("C:")
4.2. Свойства
4.2.1. AvailableSpace
Синтаксис:
AvailableSpace
Возвращаемое значение: число — количество доступного для пользователя места на диске в байтах.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.2. DriveLetter
Синтаксис:
DriveLetter
Возвращаемое значение: строка — буква, ассоциированная с ресурсом.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.3. DriveType
Синтаксис:
DriveType
Возвращаемое значение: число — определяет тип ресурса. Возможные значения:
- 0 — неизвестное устройство.
- 1 — устройство со сменным носителем.
- 2 — жёсткий диск.
- 3 — сетевой диск.
- 4 — CD-ROM.
- 5 — RAM-диск.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.4. FileSystem
Синтаксис:
FileSystem
Возвращаемое значение: cтрока — тип файловой системы (FAT, NTFS или CDFS).
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.5. FreeSpace
Синтаксис:
FreeSpace
Возвращаемое значение: число — количество свободного места на диске в байтах.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.6. IsReady
Синтаксис:
IsReady
Возвращаемое значение: булево (число) — True, если устройство готово, иначе — False. Актуально для устройства со сменным носителем или CD-ROM.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.7. Path
Синтаксис:
Path
Возвращаемое значение: строка — путь к диску (например, «C:», но не «C:»).
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.8. RootFolder
Синтаксис:
RootFolder
Возвращаемое значение: объект «Folder», соответствующий корневому каталогу диска.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.9. SerialNumber
Синтаксис:
SerialNumber
Возвращаемое значение: число — десятичный серийный номер диска.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
Синтаксис:
ShareName
Возвращаемое значение: строка — сетевое имя диска, если диск сетевой (иначе — пустая строка).
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.11. TotalSize
Синтаксис:
TotalSize
Возвращаемое значение: число — общий объём диска в байтах.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
4.2.12. VolumeName
Синтаксис:
VolumeName
Возвращаемое значение: строка — метка тома диска.
Замечание: чтение и запись.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Str = "Диск C:" & vbCrLf & _ "AvailableSpace: " & DriveC.AvailableSpace & vbCrLf & _ "DriveLetter: " & DriveC.DriveLetter & vbCrLf & _ "DriveType: " & DriveC.DriveType & vbCrLf & _ "FileSystem: " & DriveC.FileSystem & vbCrLf & _ "FreeSpace: " & DriveC.FreeSpace & vbCrLf & _ "IsReady: " & DriveC.IsReady & vbCrLf & _ "Path: " & DriveC.Path & vbCrLf & _ "RootFolder (Path): " & DriveC.RootFolder.Path & vbCrLf & _ "SerialNumber: " & DriveC.SerialNumber & vbCrLf & _ "ShareName: " & DriveC.ShareName & vbCrLf & _ "TotalSize: " & DriveC.TotalSize & vbCrLf & _ "VolumeName: " & DriveC.VolumeName MsgBox Str
5. Объект File
5.1. Создание объекта
Пример №1:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat")
Пример №2:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") Set File = Folder.Files("autoexec.bat")
Пример №3:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") Set File = Folder.Files.Item("autoexec.bat")
5.2. Свойства
5.2.1. Attributes
Синтаксис:
Attributes
Возвращаемое значение: число, набор флагов атрибутов файла. Флаги:
- 0 — Normal. Обычный файл (нет атрибутов).
- 1 — ReadOnly. Файл только для чтения. Чтение и запись.
- 2 — Hidden. Скрытый. Чтение и запись.
- 4 — System. Системный. Чтение и запись.
- 8 — Volume. Диск. Только чтение.
- 16 — Directory. Папка или файл. Только чтение.
- 32 — Archive. Архивный. Чтение и запись.
- 1024 — Alias. Ссылка или ярлык. Только чтение.
- 2048 — Compressed. Сжатый. Только чтение.
Замечание: чтение и запись или только чтение, в зависимости от атрибута.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Attrs = File.Attributes Set Dict = CreateObject("Scripting.Dictionary") Dict.Add "ReadOnly", 0 Dict.Add "Hidden", 0 Dict.Add "System", 0 Dict.Add "Volume", 0 Dict.Add "Directory", 0 Dict.Add "Archive", 0 Dict.Add "Alias", 0 Dict.Add "Compressed", 0 If Attrs And 2048 Then Dict.Item("Compressed") = 1 End If If Attrs And 1024 Then Dict.Item("Alias") = 1 End If If Attrs And 32 Then Dict.Item("Archive") = 1 End If If Attrs And 16 Then Dict.Item("Directory") = 1 End If If Attrs And 8 Then Dict.Item("Volume") = 1 End If If Attrs And 4 Then Dict.Item("System") = 1 End If If Attrs And 2 Then Dict.Item("Hidden") = 1 End If If Attrs And 1 Then Dict.Item("ReadOnly") = 1 End If Str = "Атрибуты файла """ & File.Path & """:" & vbCrLf For Each Attr In Dict Str = Str & Attr & " = " & Dict.Item(Attr) & vbCrLf Next MsgBox Str
5.2.2. DateCreated
Синтаксис:
DateCreated
Возвращаемое значение: дата создания файла.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.3. DateLastAccessed
Синтаксис:
DateLastAccessed
Возвращаемое значение: дата последнего доступа к файлу.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.4. DateLastModified
Синтаксис:
DateLastModified
Возвращаемое значение: дата последней модификации файла.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.5. Drive
Синтаксис:
Drive
Возвращаемое значение: объект «Drive» диска, на котором находится файл.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.6. Name
Синтаксис:
Name
Возвращаемое значение: имя файла.
Замечание: чтение и запись.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.7. ParentFolder
Синтаксис:
ParentFolder
Возвращаемое значение: объект «Folder» родительского каталога.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.8. Path
Синтаксис:
Path
Возвращаемое значение: полный путь к файлу.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.9. ShortName
Синтаксис:
ShortName
Возвращаемое значение: короткое имя файла в формате 8.3.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.10. ShortPath
Синтаксис:
ShortPath
Возвращаемое значение: короткий путь к файлу в формате 8.3.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.11. Size
Синтаксис:
Size
Возвращаемое значение: размер файла в байтах.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.2.12. Type
Синтаксис:
Type
Возвращаемое значение: тип файла. Информация, похожая на ту, которую можно увидеть в палитре свойств файла в проводнике.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Str = vbNullString Str = Str & "Дата создания - " & File.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & File.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & File.DateLastModified & vbCrLf Str = Str & "Диск - " & File.Drive.DriveLetter & vbCrLf Str = Str & "Имя - " & File.Name & vbCrLf Str = Str & "Родительский каталог - " & File.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & File.Path & vbCrLf Str = Str & "Короткое имя - " & File.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & File.ShortPath & vbCrLf Str = Str & "Размер - " & File.Size & vbCrLf Str = Str & "Тип файла - " & File.Type MsgBox Str
5.3. Методы
5.3.1. Copy
Синтаксис:
Copy(<Destination>,<Overwrite>)
Назначение: копирует файл в указанное место.
Параметры:
- <Destination> — строка, путь (куда копировать).
- <Overwrite> — необязательный, булево (число). Заменять файл, если он существует (True), или нет (False)
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") File.Copy "D:" File.Copy "D:Copy of autoexec.bat"
5.3.2. Move
Синтаксис:
Move(<Destination>)
Назначение: перемещает файл в указанное место.
Параметры:
- <Destination> — строка, путь (куда перемещать).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") File.Move "D:" 'File.Move "D:Copy of autoexec.bat"
5.3.3. Delete
Синтаксис:
Delete(<Force>)
Назначение: удаляет файл.
Параметры:
- <Force> — необязательный, булево (число). Удалять файл, если он имеет атрибут «только для чтения» (True), или нет (False).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:Test.txt") File.Delete
5.3.4. OpenAsTextStream
Синтаксис:
OpenAsTextStream(<Iomode>,<Format>)
Назначение: открывает текстовый файл и возвращает объект «TextStream», указывающий на него.
Параметры:
- <Iomode> — необязательный, число. Возможные значения:
- 1 — Открыть файл только для чтения.
- 2 — Открыть файл для записи. Если файл уже существовал, его содержимое теряется.
- 8 — Открыть файл для добавления. Если файл уже существовал, информация будет дописываться в конец файла.
- <Format> — необязательный, число. Возможные значения:
- -2 — Открыть файл в формате, используемом системой по умолчанию.
- -1 — Открыть файл в формате Unicode.
- 0 — Открыть файл в формате ASCII (по умолчанию).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) MsgBox TextStream.ReadAll() TextStream.Close
6. Объект Folder
6.1. Создание объекта
Пример №1:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files")
Пример №2:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetSpecialFolder(0)
Пример №3:
Set FSO = CreateObject("Scripting.FileSystemObject") Set DriveC = FSO.GetDrive("C:") Set Folder = DriveC.RootFolder
Пример №4:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") For Each SubFolder In Folder.SubFolders WScript.Echo SubFolder.Name Next
6.2. Свойства
6.2.1. Attributes
Синтаксис:
Attributes
Возвращаемое значение: число, набор флагов атрибутов папки. Флаги:
- 0 — Normal. Обычный файл (нет атрибутов).
- 1 — ReadOnly. Файл только для чтения. Чтение и запись.
- 2 — Hidden. Скрытый. Чтение и запись.
- 4 — System. Системный. Чтение и запись.
- 8 — Volume. Диск. Только чтение.
- 16 — Directory. Папка или файл. Только чтение.
- 32 — Archive. Архивный. Чтение и запись.
- 1024 — Alias. Ссылка или ярлык. Только чтение.
- 2048 — Compressed. Сжатый. Только чтение.
Замечание: чтение и запись или только чтение, в зависимости от атрибута.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Attrs = Folder.Attributes Set Dict = CreateObject("Scripting.Dictionary") Dict.Add "ReadOnly", 0 Dict.Add "Hidden", 0 Dict.Add "System", 0 Dict.Add "Volume", 0 Dict.Add "Directory", 0 Dict.Add "Archive", 0 Dict.Add "Alias", 0 Dict.Add "Compressed", 0 If Attrs And 2048 Then Dict.Item("Compressed") = 1 End If If Attrs And 1024 Then Dict.Item("Alias") = 1 End If If Attrs And 32 Then Dict.Item("Archive") = 1 End If If Attrs And 16 Then Dict.Item("Directory") = 1 End If If Attrs And 8 Then Dict.Item("Volume") = 1 End If If Attrs And 4 Then Dict.Item("System") = 1 End If If Attrs And 2 Then Dict.Item("Hidden") = 1 End If If Attrs And 1 Then Dict.Item("ReadOnly") = 1 End If Str = "Атрибуты папки """ & Folder.Path & """:" & vbCrLf For Each Attr In Dict Str = Str & Attr & " = " & Dict.Item(Attr) & vbCrLf Next MsgBox Str
6.2.2. DateCreated
Синтаксис:
DateCreated
Возвращаемое значение: дата создания каталога.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.3. DateLastAccessed
Синтаксис:
DateLastAccessed
Возвращаемое значение: дата последнего доступа к каталогу.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.4. DateLastModified
Синтаксис:
DateLastModified
Возвращаемое значение: дата последней модификации каталога.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.5. Drive
Синтаксис:
Drive
Возвращаемое значение: объект «Drive» диска, на котором находится каталог.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.6. IsRootFolder
Синтаксис:
IsRootFolder
Возвращаемое значение: булево (число). Признак того, является ли каталог корневым.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.7. Name
Синтаксис:
Name
Возвращаемое значение: имя каталога.
Замечание: чтение и запись.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.8. ParentFolder
Синтаксис:
ParentFolder
Возвращаемое значение: объект «Folder» родительского каталога.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.9. Path
Синтаксис:
Path
Возвращаемое значение: полный путь к каталогу.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.10. ShortName
Синтаксис:
ShortName
Возвращаемое значение: короткое имя каталога в формате 8.3.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.11. ShortPath
Синтаксис:
ShortPath
Возвращаемое значение: короткий путь к каталогу в формате 8.3.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.12. Size
Синтаксис:
Size
Возвращаемое значение: размер всех файлов и подкаталогов, входящих в данный каталог, в байтах.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.13. Type
Синтаксис:
Type
Возвращаемое значение: тип каталога. Информация, похожая на ту, которую можно увидеть в палитре свойств каталога в проводнике.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") Str = vbNullString Str = Str & "Дата создания - " & Folder.DateCreated & vbCrLf Str = Str & "Дата последнего доступа - " & Folder.DateLastAccessed & vbCrLf Str = Str & "Дата последней модификации - " & Folder.DateLastModified & vbCrLf Str = Str & "Диск - " & Folder.Drive.DriveLetter & vbCrLf Str = Str & "Это корневой каталог - " & Folder.IsRootFolder & vbCrLf Str = Str & "Имя - " & Folder.Name & vbCrLf Str = Str & "Родительский каталог - " & Folder.ParentFolder.Path & vbCrLf Str = Str & "Путь - " & Folder.Path & vbCrLf Str = Str & "Короткое имя - " & Folder.ShortName & vbCrLf Str = Str & "Путь в формате 8.3 - " & Folder.ShortPath & vbCrLf Str = Str & "Размер - " & Folder.Size & vbCrLf Str = Str & "Тип каталога - " & Folder.Type & vbCrLf MsgBox Str
6.2.14. SubFolders
Синтаксис:
SubFolders
Возвращаемое значение: объект-коллекция «Folders», содержащая все подкаталоги данного каталога, включая скрытые и системные.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") MsgBox Folder.SubFolders.Count Set SubFolder = Folder.SubFolders.Item("Program Files") MsgBox SubFolder.Path Set SubFolder = Folder.SubFolders("Program Files") MsgBox SubFolder.Path
Другой пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:Program Files") For Each SubFolder In Folder.SubFolders WScript.Echo SubFolder.Name Next
Создание нового подкаталога:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") Set NewFolder = Folder.SubFolders.Add("New Folder")
6.2.15. Files
Синтаксис:
Files
Возвращаемое значение: объект-коллекция «Files», содержащая все файлы данного каталога, включая скрытые и системные.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") MsgBox Folder.Files.Count Set File = Folder.Files.Item("AUTOEXEC.BAT") MsgBox File.Path Set File = Folder.Files("AUTOEXEC.BAT") MsgBox File.Path
Другой пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") For Each File In Folder.Files WScript.Echo File.Name Next
6.3. Методы
6.3.1. Copy
Синтаксис:
Copy(<Destination>,<Overwrite>)
Назначение: копирует каталог в указанное место.
Параметры:
- <Destination> — строка, путь (куда копировать).
- <Overwrite> — необязательный, булево (число). Заменять каталог, если он существует (True), или нет (False).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("D:JobSite") Folder.Copy "D:"
6.3.2. Move
Синтаксис:
Move(<Destination>)
Назначение: перемещает каталог в указанное место.
Параметры:
- <Destination> — строка, путь (куда перемещать).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("D:JobSite") Folder.Move "D:"
6.3.3. Delete
Синтаксис:
Delete(<Force>)
Назначение: удаляет каталог со всем содержимым.
Параметры:
- <Force> — необязательный, булево (число). Удалять каталог, если он имеет атрибут «только для чтения» (True), или нет (False).
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:New Folder") Folder.Delete
6.3.4. CreateTextFile
Синтаксис:
CreateTextFile(<Filename>,<Overwrite>,<Unicode>)
Назначение: создаёт новый текстовый файл и возвращает объект «TextStream», указывающий на него.
Параметры:
- <Filename> — строка, имя файла.
- <Overwrite> — необязательный, булево (число). Перезаписывать файл, если он существует (True), или нет (False). По умолчанию — False. Если указано False и файл существует — произойдёт ошибка.
- <Unicode> — необязательный, булево (число). Файл в формате Unicode (True), или ASCII (False). По умолчанию — False.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") Set TextStream = Folder.CreateTextFile("Test.txt")
7. Объект TextStream
7.1. Создание объекта
Пример №1:
Set FSO = CreateObject("Scripting.FileSystemObject") Set TextStream = FSO.CreateTextFile("C:Test.txt")
Пример №2:
Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder("C:") Set TextStream = Folder.CreateTextFile("Test.txt")
Пример №3:
Set FSO = CreateObject("Scripting.FileSystemObject") Set TextStream = FSO.OpenTextFile("C:autoexec.bat")
Пример №4:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:autoexec.bat") Set TextStream = File.OpenAsTextStream(1)
7.2. Свойства
7.2.1. AtEndOfLine
Синтаксис:
AtEndOfLine
Возвращаемое значение: содержит True, если указатель достиг конца строки и False в противном случае. Работает только если файл открыт для чтения.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) Str = vbNullString While Not TextStream.AtEndOfLine Str = Str & TextStream.Read(1) Wend TextStream.Close MsgBox Str
7.2.2. AtEndOfStream
Синтаксис:
AtEndOfStream
Возвращаемое значение: содержит True, если указатель достиг конца файла и False в противном случае. Работает только если файл открыт для чтения.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) Str = vbNullString While Not TextStream.AtEndOfStream Str = Str & TextStream.ReadLine() & vbCrLf Wend TextStream.Close MsgBox Str
7.2.3. Column
Синтаксис:
Column
Возвращаемое значение: содержит номер колонки текущего символа файла.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) Str = vbNullString While Not TextStream.AtEndOfLine Str = Str & TextStream.Column & ": " & TextStream.Read(1) & vbCrLf Wend TextStream.Close MsgBox Str
7.2.4. Line
Синтаксис:
Line
Возвращаемое значение: содержит номер текущей строки файла.
Замечание: только чтение.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) Str = vbNullString While Not TextStream.AtEndOfStream Str = Str & TextStream.Line & ": " & TextStream.ReadLine() & vbCrLf Wend TextStream.Close MsgBox Str
7.3. Методы
7.3.1. Close
Синтаксис:
Close
Назначение: закрывает открытый файл.
Параметры: нет.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) MsgBox TextStream.ReadAll() TextStream.Close
7.3.2. Read
Синтаксис:
Read(<Characters>)
Назначение: считывает из файла указанное количество символов и возвращает полученную строку.
Параметры:
- <Characters> — число, количество символов, которое нужно считать.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) MsgBox TextStream.Read(13) TextStream.Close
7.3.3. ReadAll
Синтаксис:
ReadAll
Назначение: считывает весь файл и возвращает полученную строку.
Параметры: нет.
Описание: для больших файлов использование этого метода потребует больших ресурсов памяти.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) MsgBox TextStream.ReadAll() TextStream.Close
7.3.4. ReadLine
Синтаксис:
ReadLine
Назначение: считывает строку из файла и возвращает полученную строку.
Параметры: нет.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) Str = vbNullString While Not TextStream.AtEndOfStream Str = Str & TextStream.ReadLine() & vbCrLf Wend MsgBox Str TextStream.Close
7.3.5. Skip
Синтаксис:
Skip(<Characters>)
Назначение: пропускает при чтении файла указанное количество символов.
Параметры:
- <Characters> — число, количество символов, которые нужно пропустить.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) MsgBox TextStream.Read(13) TextStream.Skip 10 MsgBox TextStream.Read(10) TextStream.Close
7.3.6. SkipLine
Синтаксис:
SkipLine
Назначение: пропускает при чтении файла строку.
Параметры: нет.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.GetFile("C:boot.ini") Set TextStream = File.OpenAsTextStream(1) MsgBox TextStream.ReadLine() TextStream.SkipLine MsgBox TextStream.ReadLine() TextStream.Close
7.3.7. Write
Синтаксис:
Write(<String>)
Назначение: записывает в файл указанную строку. Символы возврата каретки и новой строки в файл не записываются.
Параметры:
- <String> — строка для записи в файл.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set TextStream = FSO.CreateTextFile("C:Test.txt") TextStream.Write("Text") TextStream.Close
7.3.8. WriteLine
Синтаксис:
WriteLine(<String>)
Назначение: записывает в файл указанную строку. В файл записываются символы возврата каретки и новой строки.
Параметры:
- <String> — необязательный, строка для записи в файл. Если опущен, в файл записывается пустая строка.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set TextStream = FSO.CreateTextFile("C:Test.txt") TextStream.WriteLine "Text" TextStream.Close
7.3.9. WriteBlankLines
Синтаксис:
WriteBlankLines(<Lines>)
Назначение: записывает в файл указанное количество пустых строк (символы возврата каретки и новой строки).
Параметры:
- <Lines> — число, количество пустых строк, которое надо записать.
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject") Set TextStream = FSO.CreateTextFile("C:Test.txt") TextStream.WriteBlankLines 5 TextStream.Close