Меню
  Список тем
  Поиск
Полезная информация
  Краткие содержания
  Словари и энциклопедии
  Классическая литература
Заказ книг и дисков по обучению
  Учебники, словари (labirint.ru)
  Учебная литература (Читай-город.ru)
  Учебная литература (book24.ru)
  Учебная литература (Буквоед.ru)
  Технические и естественные науки (labirint.ru)
  Технические и естественные науки (Читай-город.ru)
  Общественные и гуманитарные науки (labirint.ru)
  Общественные и гуманитарные науки (Читай-город.ru)
  Медицина (labirint.ru)
  Медицина (Читай-город.ru)
  Иностранные языки (labirint.ru)
  Иностранные языки (Читай-город.ru)
  Иностранные языки (Буквоед.ru)
  Искусство. Культура (labirint.ru)
  Искусство. Культура (Читай-город.ru)
  Экономика. Бизнес. Право (labirint.ru)
  Экономика. Бизнес. Право (Читай-город.ru)
  Экономика. Бизнес. Право (book24.ru)
  Экономика. Бизнес. Право (Буквоед.ru)
  Эзотерика и религия (labirint.ru)
  Эзотерика и религия (Читай-город.ru)
  Наука, увлечения, домоводство (book24.ru)
  Наука, увлечения, домоводство (Буквоед.ru)
  Для дома, увлечения (labirint.ru)
  Для дома, увлечения (Читай-город.ru)
  Для детей (labirint.ru)
  Для детей (Читай-город.ru)
  Для детей (book24.ru)
  Компакт-диски (labirint.ru)
  Художественная литература (labirint.ru)
  Художественная литература (Читай-город.ru)
  Художественная литература (Book24.ru)
  Художественная литература (Буквоед)
Реклама
Разное
  Отправить сообщение администрации сайта
  Соглашение на обработку персональных данных
Другие наши сайты
Приглашаем посетить
  Естествознание (es.niv.ru)

   

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

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

Объектная Файловая Система, которая обеспечивает основанный на объектах инструмент для работы с папками и файлами. Это позволяет Вам использовать знакомый синтаксис object. method с богатым набором свойств, методов, и событий, чтобы обработать папки и файлы, в дополнение к использованию традиционных методов и команд Visual Basic. Объектная модель FSO дает вашим прикладным программам способность создавать, изменять, перемещать, и удалить папки, или выяснять, если специфические папки существуют, и если так, то где. Это также дает возможность Вам получитьинформацию относительно папок, типа их имен, дат, когда они были созданы или в последний раз изменялись, и т. д. Объектная модель FSO позволяет намного проще проводить обработку файлов. При обработке файлов, ваша основная цель состоит в том, чтобы сохранить данные в области - и ресурсо-эффективном, легко доступном формате. Вы сможете создавать файлы, вставлять и изменять(заменять) и выводить (считывать) данные Объектная модель FSO, которая содержится в библиотеке типов Scripting type library (Scrrun. Dll), поддерживает создание текстового файла и манипулирование им через объект TextStream. Однако это не поддерживает создание или манипулирование двоичными файлами. Чтобы управлять двоичными файлами, используется команда Open с бинарным флагом. Объекты Файловой системыОбъектная модель FSO имеет следующие объекты: Drive(Дисковод) - Позволяет Вам получить информацию относительно дисководов присоединенных к системе, их типа, количества доступного участка памяти, их обозначения, и т. д. Обратите внимание, что " дисковод" не обязательно жесткий диск. Это может быть дисковод CD-ROM, вертуальный диск, и т. д. Также не обязательно, чтобы дисководы были физически присоединенными к системе; они могут быть также логически подсоединены через локальную сеть.

Folder(Папка) - Позволяет Вам создавать, удалять, или перемещать папки, плюс запрос системы относительно их имен, путей, и так далее.

связанных с этим объектом дублированы в других объектах.

TextStream - Дает возможность Вам читать и писать текстовые файлы.

Программирование в Объектной Модели FSO

Программирование в Объектной Модели FSO включает три основных задачи:

Использование соответствующего метода в недавно созданном объекте;

Вызов свойств объекта.

Вы можете затем использовать Object Browser, чтобы просмотреть объекты, свойства, методы и события, а также константы.

Создание объекта FileSystemObject

Первый шаг должен создать объект FileSystemObject, чтобы работать с ним. Вы можете сделать это двумя способами: Объявить переменную, как объект:

Dim fso As New FileSystemObject

Используяметод CreateObject создатьобъект FileSystemObject:

Set fso = CreateObject ( "Scripting. FileSystemObject" )

Обратите внимание, что первый метод работает только в Visual Basic, в то время, как второй метод работает и в Visual Basic и в VBScript.

Использование соответствующих методов

Следующий шаг должен использовать соответствующий метод объекта FileSystemObject. Например, если Вы хотите создавать новый объект, Вы можете использовать или CreateFolder или CreateTextFile. (Модель объекта FSO не поддерживает создание или стирание дисководов.). Если Вы хотите удалить объекты, Вы можете использовать методы DeleteFile или DeleteFolder объекта FileSystemObject, или метод Delete объектов File или Folder. При использовании соответствующих методов, Вы можете также копировать и перемещать файлы и папки. Обратите внимание, что некоторые функциональные возможности в модели объекта FileSystemObject избыточны. Например, Вы можете копировать файл, использующий или метод CopyFile объекта FileSystemObject, или Вы можете использовать метод Copy объекта File. Методы работают также. И существуют, чтобы дать Вам максимум гибкости программирования.

Чтобы получить доступ к существующему дисководу, файлу или папке, используется соответствующий метод "Get" объекта FileSystemObject:

GetFolder;

GetFile;

Dim fso As New FileSystemObject, fil As File

Set fil = fso. GetFile("c:test.txt")

Обратите внимание, однако, что Вы не должны использовать методы "Get" для недавно созданных объектов, так как функции "Get" уже возвращает программе обработки недавно созданный объект. Например, если Вы создаете новую папку, используя метод CreateFolder, Вы затем не должны использовать метод GetFolder , чтобы обратиться к свойствам, типа Name, Path, Size и т. д. Только объявите переменную функции CreateFolder, чтобы получить программу обработки недавно созданной папке, затем обратитесь к свойствам, методам, и событиям:

Private Sub CreateFolder()

Dim fso As New FileSystemObject, fldr As Folder

Set fldr = fso. CreateFolder("C:MyTest")

MsgBox "Created folder: " & fldr. Name

End Sub

Обращение к Properties (Свойствам) Объекта

Как только Вы имеете код обработки объекта, Вы можете обращаться к его свойствам. Например, если Вы хотите получить имя специфической папки. Сначала Вы создаете образец объекта, затем Вы получаете код для его обработки соответствующим методом (в этом случае метод GetFolder, так как папка уже существует):

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

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);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Private Sub Command10Click()

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

' Объект Get Drive

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

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

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

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

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

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

Else

Debug. Print "This folder isn't 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")

"Deleted folder C:Bogus"

Вы можете работать с файлами в 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)

Другой путь состоит в том, чтобы использовать метод 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")

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

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

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

Чтобы записать данные в открытый текстовый файл, используйте методы Write или WriteLine объекта TextStream. Единственое различие между Write и WriteLine - то, что WriteLine добавляет символы newline к концу строки. Если Вы хотите добавлять newline к текстовому файлу, используйте метод WriteBlankLines.

Чтобы закрыть открытый файл, используйте метод Close объекта TextStream.

Sub CreateFile()

Dim fso, txtfile

Set fso = CreateObject("Scripting. FileSystemObject")

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

txtfile. Write ("This is a test. ")

txtfile. WriteLine("Testing 1, 2, 3.")

'Запись трех символов newline в файл

txtfile. WriteBlankLines(3)

txtfile. Close

End Sub

Чтениефайлов File System Objects

Чтобы читать данные из текстового файла, используйте методы Read, ReadLine или ReadAll объекта TextStream:

Чтение определенного числа символов из файла - Read

Чтение всей линии (но не, включая, символ newline) - ReadLine

Если Вы используете метод Read или ReadLine, и Вы хотите перейти к специфической части данных, Вы можете использовать метод Skip или SkipLine. Полученный в результате использования этих методов текст может быть сохранен в символьной переменной и анализироваться Left, Right и Mid. Обратите внимание, что константа vbNewLine содержит символ или символы (в зависимости от операционной системы) чтобы продвинуть курсор к началу следующей линии (возврат каретки). Знайте, что концы некоторых символьных переменных могут иметь такие непечатаемые символы.

Dim fil1 As File, ts As TextStream

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

MsgBox "Writing file"

' Записьлинии

Set fil1 = fso. GetFile("c:testfile.txt")

Set ts = fil1. OpenAsTextStream(ForWriting)

ts. Write "Hello World"

' Чтение содержания файла

Set ts = fil1. OpenAsTextStream(ForReading)

s = ts. ReadLine

MsgBox s

ts. Close

End Sub

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

Модель объекта FSO имеет два метода для перемещения, копирования и удаления файлов:

Переместитефайл - File. Move or FileSystemObject. MoveFile

Удалитефайл - File. Delete or FileSystemObject. DeleteFile

Этот пример создает текстовый файл в корневой директории дисковода C, пишет некоторую информацию в нем, перемещает его в каталог, называемый tmp, делает копию его в каталог, называемый temp, затем удаляет копии из обоих каталогов. Чтобы выполнять этот пример, удостоверитесь, что Вы имеете каталоги, именованные tmp и temp в корневой директории дисковода C

Dim fso As New FileSystemObject, txtfile, fil1, fil2

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

"Writing file"

txtfile. Write ("This is a test.")

MsgBox "Moving file to c:tmp"

' Код обработки файла в корне C:

Set fil1 = fso. GetFile("c:testfile.txt")

' Перемещаем файл в директорию tmp

"c:tmptestfile.txt")

MsgBox " Копируем файл в c:temp"

' Копируем файл в temp

"c:temptestfile.txt")

MsgBox "Удаляемфайлы"

Set fil1 = fso. GetFile("c:tmptestfile.txt")

Set fil2 = fso. GetFile("c:temptestfile.txt")

' Удаляемдайлы

fil1. Delete

MsgBox "Все!"

End Sub