Свойства файла: вывод информации о файле, доступной для просмотра через контекстное меню любого файла (кнопка «Свойства»), из кода VBA Excel.
Вывод информации о файле
В контекстном меню любого файла есть кнопка «Свойства», при нажатии которой открывается окно с информацией о файле. Эта информация может быть выведена для просмотра с помощью кода VBA Excel.
Получение свойств любого файла программным способом на примере файла "Схема Белоусова.png"
, расположенного в папке "C:UsersEvgeniyDownloads"
:
Sub FileInfo() Dim ns As Object, i As Integer, n As Integer Set ns = CreateObject(«Shell.Application»).Namespace(«C:UsersEvgeniyDownloads») For i = 0 To 303 If ns.GetDetailsOf(ns.ParseName(«Схема Белоусова.png«), i) <> «» Then n = n + 1 Cells(n, 1) = ns.GetDetailsOf(«Схема Белоусова.png«, i) & « = » & ns.GetDetailsOf(ns.ParseName(«Схема Белоусова.png«), i) End If Next Set ns = Nothing End Sub |
Если убрать из кода условие, будут отображены все свойства файла, включая свойства без значений. Общее количество свойств — 304.
Выражение
CreateObject(«Shell.Application»).Namespace(«C:UsersEvgeniyDownloads«) |
возвращает ссылку на объект Folder для указанной папки («C:UsersEvgeniyDownloads»).
Выражение
ns.GetDetailsOf(«Схема Белоусова.png», i) |
возвращает наименование свойства указанного файла («Схема Белоусова.png») под номером i.
Выражение
ns.GetDetailsOf(ns.ParseName(«Схема Белоусова.png»), i) |
возвращает значение свойства указанного файла («Схема Белоусова.png») под номером i.
Ширина и высота изображения
Извлечение отдельных свойств файла рассмотрим на примере ширины и высоты изображения. Вывести значение свойства можно по его наименованию или порядковому номеру (индексу).
Определяем индексы ширины и высоты в списке свойств изображения:
Sub TestWidthHeight() Dim ns As Object, i As Integer Set ns = CreateObject(«Shell.Application»).Namespace(«C:UsersEvgeniyDownloads») For i = 0 To 303 If ns.GetDetailsOf(«Схема Белоусова.png«, i) = «Ширина» Or ns.GetDetailsOf(«Схема Белоусова.png«, i) = «Высота» Then Debug.Print ns.GetDetailsOf(«Схема Белоусова.png«, i) & « = » & ns.GetDetailsOf(ns.ParseName(«Схема Белоусова.png«), i) & «, Id = « & i End If Next Set ns = Nothing End Sub |
Результат работы кода:
Чтобы можно было присвоить значения ширины и высоты числовым переменным, необходимо убрать непечатные символы перед числами и отбросить текстовые части:
Sub ImageWidthHeight() Dim ns As Object, myWidth As Integer, myHeight As Integer Set ns = CreateObject(«Shell.Application»).Namespace(«C:UsersEvgeniyDownloads») myWidth = Val(Mid(ns.GetDetailsOf(ns.ParseName(«Схема Белоусова.png«), 167), 2)) myHeight = Val(Mid(ns.GetDetailsOf(ns.ParseName(«Схема Белоусова.png«), 169), 2)) Set ns = Nothing Debug.Print myWidth Debug.Print myHeight End Sub |
Применение свойств файла
Представленный ниже код VBA Excel выполняет следующие операции:
- присваивает числовым переменным myWidth и myHeight значения ширины и высоты, извлеченные из информации о файле изображения;
- задает ширине и высоте фигуры на рабочем листе размеры изображения;
- добавляет фигуре ссылку на фоновое изображение.
Sub Primer() Dim ns As Object, myWidth As Integer, myHeight As Integer Set ns = CreateObject(«Shell.Application»).Namespace(«C:UsersEvgeniyDownloads») myWidth = Val(Mid(ns.GetDetailsOf(ns.ParseName(«Схема Белоусова.png«), 167), 2)) myHeight = Val(Mid(ns.GetDetailsOf(ns.ParseName(«Схема Белоусова.png«), 169), 2)) Set ns = Nothing Dim myShap As Shape Set myShap = ActiveSheet.Shapes(«Блок—схема: процесс 9«) With myShap .Width = myWidth .Height = myHeight .Fill.UserPicture «C:UsersEvgeniyDownloadsСхема Белоусова.png« End With End Sub |
Фразы для контекстного поиска: информация о файле.
ZVI
Пользователь
Сообщений: 4328
Регистрация: 23.12.2012
Немного подправил код (подключил параметр i):
Function GetFileInfo(PathName As String, FileName As String, Optional i)
‘ ZVI:2011-08-29
http://www.planetaexcel.ru/forum.php?thread_id=31105
‘ Получение свойств файла
‘——————-
‘ PathName — папка
‘ FileName — имя файла
‘ i — номер свойства (см ниже),
‘ если параметр i не указан, то возвращается массив свойств
‘——————-
‘i = 0-Имя,1-Размер,2-Тип,3-Изменен,4-Дата создания,5-Открыт
‘i = 6-Атрибуты,7-Состояние,8-Владелец,9-Автор,10-Заголовок
‘i = 11-Тема,12-Категория,13-Страницы,14-Комментарий
‘——————-
Dim a, j&
If Dir(PathName & IIf(Right(PathName, 1) <> «», «», «») & FileName) = «» Then Exit Function
With CreateObject(«Shell.Application»).Namespace((PathName))
If IsMissing(i) Then
ReDim a(0 To 14)
For j = 0 To UBound(a)
a(j) = .GetDetailsOf(.ParseName((FileName)), j)
Next
Else
a = .GetDetailsOf(.ParseName((FileName)), i)
End If
End With
GetFileInfo = a
End Function
Sub ShowFileInfo()
Dim x
x = GetFileInfo(«C:Temp», «Test.xls»)
If IsArray(x) Then
Debug.Print «Имя:», x(0)
Debug.Print «Размер:», x(1)
Debug.Print «Тип:», x(2)
Debug.Print «Изменен:», x(3)
Debug.Print «Создан:», x(4)
Debug.Print «Открыт:», x(5)
Debug.Print «Аттрибут:», x(6)
Debug.Print «Состояние:», x(7)
Debug.Print «Владелец:», x(8)
Debug.Print «Автор:», x(9)
Debug.Print «Заголовок:», x(10)
Debug.Print «Тема:», x(11)
Debug.Print «Категории:», x(12)
Debug.Print «Страницы:», x(13)
Debug.Print «Комментарий:», x(14)
Else
Debug.Print «Файл не найден»
End If
End Sub
Sub Test_ShowAuthor()
Debug.Print «Автор:», GetFileInfo(«C:Temp», «Test.xls», 9)
End Sub
Homophobic 0 / 0 / 0 Регистрация: 08.11.2016 Сообщений: 11 |
||||||||
1 |
||||||||
Извлечение свойств файла11.01.2018, 12:30. Показов 4831. Ответов 12 Метки нет (Все метки)
Добрый день! Стоит задача извлечения определённых свойств файла(ов) (имя, дата изменения и размер). Нашёл код и немного доработав получил следующее:
Подскажите, как выбрать изменить начальный каталог открытия файла и что дописать, что бы при нажатии «Отмена» не выскакивала ошибка? Возможно ли данные свойства получить не через окно открытия, а при помощи ссылки на файл? Имею ввиду примерно следующее:
Только вместо адреса выше упомянутые свойства что бы извлекались
0 |
Заблокирован |
||||||||
11.01.2018, 12:52 |
2 |
|||||||
что дописать, что бы при нажатии «Отмена» не выскакивала ошибка?
при помощи ссылки на файл?
1 |
0 / 0 / 0 Регистрация: 08.11.2016 Сообщений: 11 |
|
11.01.2018, 14:09 [ТС] |
3 |
Set File = FSO.GetFile(.Hyperlinks(I).Address) На этой строке выдает ошибку «Run-time error ’53’: File not found» я так понимаю, что на относительных ссылках.
0 |
Заблокирован |
|
11.01.2018, 14:14 |
4 |
Homophobic, думаете я вижу отсюда, что там в ваших ссылках?
0 |
Homophobic 0 / 0 / 0 Регистрация: 08.11.2016 Сообщений: 11 |
||||||
17.01.2018, 17:42 [ТС] |
5 |
|||||
Я имею ввиду, что данная команда работает с абсолютными гиперссылками, а на относительных выдает ошибку.
функция корректно работает и для абсолютных и для относительных гиперссылок Вложения
0 |
Заблокирован |
||||||||
17.01.2018, 18:46 |
6 |
|||||||
Homophobic, ну так работайте с относительными ссылками — кто мешает:
Отличить абсолютную ссылку от относительной можно по маске
Для сетевых ссылок — нужны примеры, не сталкивался до сего дня.
1 |
15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
|
18.01.2018, 23:09 |
7 |
Надо бы учесть еще две вещи:
1 |
0 / 0 / 0 Регистрация: 08.11.2016 Сообщений: 11 |
|
20.01.2018, 22:04 [ТС] |
8 |
Всем спасибо!
0 |
Homophobic 0 / 0 / 0 Регистрация: 08.11.2016 Сообщений: 11 |
||||
03.02.2018, 23:59 [ТС] |
9 |
|||
Я себе голову сломал. Отсечь подъемы на уровень, выше через одно место, можно
в итоге имеем количество «..» и адрес без «..».
0 |
Заблокирован |
|
04.02.2018, 01:00 |
10 |
Homophobic, что такое
нужное кол-во подпапок в базовом пути? Какой нужен результат?
0 |
Homophobic 0 / 0 / 0 Регистрация: 08.11.2016 Сообщений: 11 |
||||
04.02.2018, 15:53 [ТС] |
11 |
|||
Результат нужен следующий:
тоже отлично работает ибо адрес вида «C:папкапапка..файл.txt» Excel воспринимает как «C:папкафайл.txt»
0 |
Homophobic 0 / 0 / 0 Регистрация: 08.11.2016 Сообщений: 11 |
||||||||||
04.02.2018, 22:32 [ТС] |
12 |
|||||||||
Другой вопрос.
с синтаксисом совсем не дружу к сожалению. Есть именованные диапазоны (nazv, date, razm) в виде столбцов.
Как гиперссылки поячейно перебирать? Вложения
0 |
Homophobic 0 / 0 / 0 Регистрация: 08.11.2016 Сообщений: 11 |
||||
06.02.2018, 00:39 [ТС] |
13 |
|||
Нашёл способ. Получилось следующее
0 |
Содержание
- Объект 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
Извлечь из свойств файла данные о авторе и пользователе |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |