FileSystemObject – тяжелая артиллерия VB6 (статья)
Формулировка задачи:
Введение в объектную модель FSO
Новая особенность для VB6 - модель объекта ( FSO ) Объектная Файловая Система, которая обеспечивает основанный на объектах инструмент для работы с папками и файлами. Это позволяет Вам использовать знакомый синтаксис object.method с богатым набором свойств, методов, и событий, чтобы обработать папки и файлы, в дополнение к использованию традиционных методов и команд Visual Basic. Объектная модель FSO дает вашим прикладным программам способность создавать, изменять, перемещать, и удалить папки, или выяснять, если специфические папки существуют, и если так, то где. Это также дает возможность Вам получить информацию относительно папок, типа их имен, дат, когда они были созданы или в последний раз изменялись, и т.д. Объектная модель FSO позволяет намного проще проводить обработку файлов. При обработке файлов, ваша основная цель состоит в том, чтобы сохранить данные в области - и ресурсо-эффективном, легко доступном формате. Вы сможете создавать файлы, вставлять и изменять(заменять) и выводить (считывать) данные. Объектная модель FSO, которая содержится в библиотеке типовScripting type library (Scrrun.Dll)
, поддерживает создание текстового файла и манипулирование им черезобъект TextStream
. Однако этоне поддерживает создание или манипулирование двоичными файлами.
Чтобы управлять двоичными файлами, используется командаOpen
с бинарным флагом.Объекты Файловой системы
Объектная модель FSO имеет следующие объекты:Drive(Дисковод)
- Позволяет Вам получить информацию относительно дисководов присоединенных к системе, их типа, количества доступного участка памяти, их обозначения, и т.д. Обратите внимание, что "дисковод" не обязательно жесткий диск. Это может быть дисковод CD-ROM, вертуальный диск, и т.д. Также не обязательно, чтобы дисководы были физически присоединенными к системе; они могут быть также логически подсоединены через локальную сеть.Folder(Папка)
- Позволяет Вам создавать, удалять, или перемещать папки, плюс запрос системы относительно их имен, путей, и так далее.Files(Файлы)
- Позволяет Вам создавать, удалять, или перемещать файлы, плюс запрос системы относительно их имен, путей, и так далее.FileSystemObject
- Основной объект группы, с полными методами, которые позволят Вам создать, удалять, получать информацию обовсем, и вообще, управляет дисководами, папками, и файлами. Многие из методов, связанных с этим объектом дублированы в других объектах.TextStream
- Дает возможность Вам читать и писать текстовые файлы.Программирование в Объектной Модели FSO
Программирование в Объектной Модели FSO включает три основных задачи: 1. Использование метода CreateObject или объявления переменной как объект FileSystemObject, для создания объекта FileSystemObject; 2. Использование соответствующего метода в недавно созданном объекте; 3. Вызов свойств объекта. Объектная Модель FSO содержится в библиотеке типов, называемой Scripting, которая размещена в файле Scrrun.Dll . Если Вы пока не имеете ссылку, то поставьте ее в меню References| Microsoft Scripting Runtime. Вы можете затем использовать Object Browser, чтобы просмотреть объекты, свойства, методы и события, а также константы.Создание объекта FileSystemObject
Первый шаг должен создать объект FileSystemObject, чтобы работать с ним. Вы можете сделать это двумя способами: Объявить переменную, как объект:Использование соответствующих методов
Следующий шаг должен использовать соответствующий метод объекта FileSystemObject. Например, если Вы хотите создавать новый объект, Вы можете использовать или CreateFolder или CreateTextFile. (Модель объекта FSO не поддерживает создание или стирание дисководов.). Если Вы хотите удалить объекты, Вы можете использовать методы DeleteFile или DeleteFolder объекта FileSystemObject, или метод Delete объектов File или Folder. При использовании соответствующих методов, Вы можете также копировать и перемещать файлы и папки. Обратите внимание, что некоторые функциональные возможности в модели объекта FileSystemObject избыточны. Например, Вы можете копировать файл, использующий илиметод CopyFile объекта FileSystemObject
, или Вы можете использоватьметод Copy объекта File
. Методы работают также. И существуют, чтобы дать Вам максимум гибкости программирования.Вызов, существующих Drives (Дисководов) , Files (Файлов) и Folders (Папок)
Чтобы получить доступ к существующему дисководу, файлу или папке, используется соответствующий метод "Get" объекта FileSystemObject: GetDrive; GetFolder; GetFile; Например:Обратите внимание, однако
, что Вы не должны использовать методы "Get" для недавно созданных объектов, так как функции "Get
" уже возвращает программе обработки недавно созданный объект. Например, если Вы создаете новую папку, используя методCreateFolder
, Вы затем не должны использовать методGetFolder
, чтобы обратиться к свойствам, типаName, Path, Size
и т.д. Только объявите переменную функции CreateFolder, чтобы получить программу обработки недавно созданной папке, затем обратитесь к свойствам, методам, и событиям:Обращение к Properties (Свойствам) Объекта
Как только Вы имеете код обработки объекта, Вы можете обращаться к его свойствам. Например, если Вы хотите получить имя специфической папки. Сначала Вы создаете образец объекта, затем Вы получаете код для его обработки соответствующим методом (в этом случае методGetFolder
, так как папка уже существует):Работа с 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):Работа с 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, чтобы управлять папками и получать информацию о них:Работа с Files (Файлами)
Вы можете работать с файлами в Visual Basic, используя новые объектно-ориентированные объекты FSO типа Copy, Delete, Move и OpenAsTextStream, так же, как и более старые существующие функции типа Open, Close, FileCopy, GetAttr, и т.д. Обратите внимание, что Вы можете перемещать, копировать или удалять файлы независимо от типа файла. Имеются две главных категории манипулирования файлами: Создание, добавление или удаления данных, или чтение файлов; Перемещение, копирование и удаление файлов;Создание файлов и добавления данных с помощью File System Objects
Имеютсятри способа
создать последовательный текстовый файл (иногда упоминаемый как "текстовый поток"). Один путь состоит в том, чтобы использовать метод CreateTextFile. Создаем пустой текстовый файл:Добавление данных к файлу
Как только текстовый файл создан, Вы можете добавлять данные. Для этого необходимо:- Открыть текстовый файл для записи данных.
- Записать данные.
- Закрыть файл.
- метод OpenAsTextStream объекта File или
- метод OpenTextFile объекта FileSystemObject.
Чтобы записать данные
в открытый текстовый файл, используйте методыWrite
илиWriteLine
объектаTextStream
. Единственое различие между Write и WriteLine - то, что WriteLine добавляет символы newline к концу строки. Если Вы хотите добавлять newline к текстовому файлу, используйте метод WriteBlankLines. Чтобы закрыть открытый файл, используйте метод Close объекта TextStream.Чтение файлов File System Objects
Чтобы читать данные из текстового файла, используйте методыRead, ReadLine
илиReadAll
объектаTextStream
:- Чтение определенного числа символов из файла - Read
- Чтение всей линии (но не, включая, символ newline) - ReadLine
- Чтение всего содержания текстового файла - ReadAll
Skip
илиSkipLine
. Полученный в результате использования этих методов текст может быть сохранен в символьной переменной и анализироваться Left, Right и Mid. Обратите внимание, что константа vbNewLine содержит символ или символы (в зависимости от операционной системы) чтобы продвинуть курсор к началу следующей линии (возврат каретки). Знайте, что концы некоторых символьных переменных могут иметь такие непечатаемые символы.Перемещение, копирование и удаление файлов
Модель объекта FSO имеетдва метода
для перемещения, копирования и удаления файлов:- Переместите файл - File.Move or FileSystemObject.MoveFile
- Копируйте файл - File.Copy or FileSystemObject.CopyFile
- Удалите файл - File.Delete or FileSystemObject.DeleteFile
- создает текстовый файл в корневой директории дисковода C,
- пишет некоторую информацию в нем,
- перемещает его в каталог, называемый \tmp,
- делает копию его в каталог, называемый \temp, затем
- удаляет копии из обоих каталогов.
Статья взята с: http://www.rusedu.info
Решение задачи: «FileSystemObject – тяжелая артиллерия VB6 (статья)»
Dim strPath, n, strHexData 'Файл-получатель strPath = "l:\Bash\LammV\IPTEST\Binary Write\bin.dat" 'Байты в 16-ричной СС strHexData = "0102030405" With CreateObject("Scripting.FileSystemObject") with .OpenTextFile(strPath, 2, True) '2 - ForWriting, True - Overwrite For n = 1 To len(strHexData) Step 2 .Write Chr(Clng("&h" & Mid(strHexData, n, 2))) Next .Close End with End With
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д