FSO – тяжелая артиллерия VB6

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

те код для его обработки соответствующим методом (в этом случае метод GetFolder, так как папка уже существует):

Set fldr = fso.GetFolder("c:")

Теперь, когда Вы имеете код обработки объекта Folder, Вы можете проверить свойство Name:

Debug.Print "Folder name is: "; fldr.Name

Если Вы хотите выяснять когда в последний раз, файл изменялся, используется следующий синтаксис:

Dim fso As New FileSystemObject, fil As File

Получаем объект File, чтобы сделать запрос

Set fil = fso.GetFile ( "C:detlog.txt" )

Печатаем информацию

Debug.Print "File last modified: "; fil.DateLastModified

Работа с Drives (Дисководами) и Folders (Папками)

Объектная модель FSO может программно работать с дисководами и папками, точно так, как Вы с Windows Explorer в интерактивном режиме. Вы можете копировать и перемещать папки, получать информацию относительно дисководов и папок, и т.д. Получение информации относительно Drives (Дисководов) Объект Drive позволяет Вам получать информацию относительно различных дисководов, присоединенных к системе или физически или через сеть. Свойства позволяют Вам получить информацию относительно:

Полный размера дисковода в байтах (свойство TotalSize);

Количество доступного свободного места на дисководе в байтах (свойства AvailableSpace или FreeSpace);

Буквенного обозначения дисковода (свойство DriveLetter);

Какого типа дисковод, сменный, фиксированный, сетевой, CD-ROM или RAM (свойство DriveType);

Серийный номер дисковода (свойство SerialNumber);

Тип файловой системы использования дисковода FAT, FAT32, NTFS, и т.д (свойство FileSystem);

Является ли дисковод доступен для использования (свойство IsReady);

Имя общих и/или Имя объемa (свойства ShareName и VolumeName);

Путь или корневую папку дисковода (свойства Path и RootFolder);

Пример использования объекта Drive (Дисковода)

Пример ниже показывается, как использовать объект Drive, чтобы получить полную информацию относительно дисковода. Не забудьте, что в следующем коде Вы не будете видеть ссылку к фактическому объекту Drive, достаточно, что Вы используете метод GetDrive чтобы получить ссылку для существующего объекта Drive (в этом случае - drv):

Private Sub Command3_Click()

Dim fso As New FileSystemObject, drv As Drive, s As String

Set drv = fso.GetDrive(fso.GetDriveName("c:"))

s = "Drive " & UCase("c:") & " - "

s = s & drv.VolumeName & vbCrLf

s = s & "Total Space: " & FormatNumber(drv.TotalSize / 1024, 0)

s = s & " Kb" & vbCrLf

s = s & "Free Space: " & FormatNumber(drv.FreeSpace / 1024, 0)

s = s & " Kb" & vbCrLf

MsgBox s

End Sub

Работа с Folders (Папками)

Этот список показывает общие задачи папки и методы для выполнения их:

Создать папку - FileSystemObject.CreateFolder

Удалить папку - Folder.Delete или FileSystemObject.DeleteFolder

Переместить папку - Folder.Move или FileSystemObject.MoveFolder

Копировать папку - Folder.Copy или FileSystemObject.CopyFolder

Возвратить имя папки - Folder.Name

Выяснить, существует ли папка на дисководе - FileSystemObject.FolderExists

Получить образец существующего объекта - Folder FileSystemObject.GetFolder

Выяснить имя папки, родителя папки - FileSystemObject.GetParentFolderName

Выяснить путь системных папок - FileSystemObject.GetSpecialFolder

Этот пример показывает использование объектов Folder и FileSystemObject, чтобы управлять папками и получать информацию о них:

Private Sub Command10_Click()

Получаем образец FileSystemObject

Dim fso As New FileSystemObject, fldr As Folder, s As String

Объект Get Drive

Set fldr = fso.GetFolder("c:")

Печатаем родительское имя папки

Debug.Print "Parent folder name is: " & fldr

Печатаем имя дисковода

Debug.Print "Contained on drive " & fldr.Drive

Печатаем имя корневой папки

If fldr.IsRootFolder = True Then

Debug.Print "This folder is a root folder."

Else

Debug.Print "This folder isnt a root folder."

End If

Создаем новую папку объектом FileSystemObject

fso.CreateFolder ("c:Bogus")

Debug.Print "Created folder C:Bogus"

Печатаем основное имя папки

Debug.Print "Basename = " & fso.GetBaseName("c:bogus")

Удаляем недавно созданную папку

fso.DeleteFolder ("c:Bogus")

Debug.Print "Deleted folder C:Bogus"

End Sub

Работа с Files (Файлами)

Вы можете работать с файлами в Visual Basic, используя новые объектно-ориентированные объекты FSO типа Copy, Delete, Move и OpenAsTextStream, так же, как и более старые существующие функции типа Open, Close, FileCopy, GetAttr, и т.д. Обратите внимание, что Вы можете перемещать, копировать или удалять файлы независимо от типа файла. Имеются две главных категории манипулирования файлами:

Создание, добавление или удаления данных, или чтение файлов;

Перемещение, копирование и удаление файлов;

Создание файлов и добавления данных с помощью File System Objects

Имеются три способа создать последовательный текстовый файл (иногда упоминаемый как "текстовый поток"). Один путь состоит в том, чтобы использовать метод CreateTextFile. Создаем пустой текстовый файл:

Dim fso As New FileSystemObject, fil As File

Set fil = fso.CreateTextFile("c:testfile.txt", True)

Обратите внимание, что модель объекта FSO еще не поддерживает создание произвольных (random) или двоичных (binary) файлов.

Другой путь состоит в том, чтобы использовать метод OpenTextFile объекта FileSystemObject с установкой флага ForWriting:

Dim fso As New FileSystemObject, ts As New TextStream

Set ts = fso.OpenTextFile("c:test.txt", ForWriting)

Или Вы можете использовать метод OpenAsTextStream с установкой флага ForWriting:

Dim fso As New FileSystemObject, fil As File, ts As TextStream

Set fso = CreateObject("Scripting.FileSystemObject")

fso.CreateTextFile ("test1.txt")

Set fil = fso.GetFile("test1.txt")

Set ts = fil.OpenAsTextStream(ForWriting)

Добавление данных к файлу

Как только текстовый файл создан, Вы можете добавлять данные. Для этого необходимо:

Открыть текстовый файл для записи данных.

Записать данные.

Закрыть файл.

Чтобы открыть файл, Вы можете использовать любой из дву