Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Юзай на здоровье Добавлено: 07.05.03 06:06  

Автор вопроса:  KolAR

Введение в объектную модель FSO

Новая особенность VB6 - объектная файловая система (FSO), которая представляет собой основанный на объектах инструмент для работы с папками и файлами. Это позволяет вам использовать знакомый синтаксис object.method с богатым набором свойств, методов и событий для работы с папками и файлами в дополнение к использованию традиционных методов и команд Visual Basic.

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

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

FSO, которая содержится в библиотеке типов Scripting type library (scrrun.dll), поддерживает создание текстовых файлов и манипулирование ими через объект TextStream. Однако она не поддерживает создание или манипулирование двоичными файлами. Для управления двоичными файлами по-прежнему приходится использовать старые методы - команду Open с соответствующим флагом.

Объекты файловой системы

FSO имеет следующие объекты: Объект Описание

Drive (Дисковод) Позволяет получить информацию о дисководах, присоединенных к системе: их тип, объем (общий, занятый и свободный), метку, серийный номер и т.д. Обратите внимание, что под словом "дисковод" не обязательно подразумевается жесткий диск. Это может быть FDD, CD-ROM, виртуальный диск и т.д. Также не обязательно, чтобы дисководы были физически присоединены к системе - обеспечивается работа с сетевыми дисками.

Folder (Папка) Позволяет создавать, удалять или перемещать папки. Также через этот объект можно получить сведения об их именах, атрибутах, путях к определенным папкам и так далее.

Files (Файлы) Позволяет создавать, удалять или перемещать файлы. Предоставляет доступ к атрибутам, именам и прочим характеристикам файлов.

FileSystemObject Основной объект группы. Содержит методами, которые позволяют создавать, удалять, получать информацию обо всех объектах файловой системы. Также осуществляет управление дисководами, папками и файлами. Многие из методов, связанных с этим объектом, дублированы в других объектах.

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

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

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

создание объекта FileSystemObject путем использования метода CreateObject или объявления новой переменной типа FileSystemObject;

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

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

FSO содержится в библиотеке типов, называемой Scripting, которая размещена в файле scrrun.dll. Эту библиотеку надо прописать в меню References | Microsoft Scripting Runtime (если вы этого еще не сделали). С помощью Object Browser можно просмотреть список объектов, свойств, методов, событий и констант, включенных в FSO.

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

Первый шаг - создание объект FileSystemObject для последующей работы с ним. Это можно сделать двумя способами:

объявить переменную как объект:

Dim fso As New FileSystemObject

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

Set fso = CreateObject("Scripting.FileSystemObject")

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

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

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

Работа с существующими дисководами, файлами и папками

Чтобы получить доступ к существующему дисководу, файлу или папке, используется соответствующий метод Get объекта FileSystemObject: GetDrive; GetFolder; GetFile. Например:

Dim fso As New FileSystemObject, fil As File

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

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

Private Sub Create_Folder()

Dim fso As New FileSystemObject, fldr As Folder

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

MsgBox "Created folder: " & fldr.Name

End Sub

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

Получив доступ к объекту с помощью методов Get (или создав его), вы можете обращаться к его свойствам. Например, сначала вы получаете доступ к корневому каталогу диска c: методом GetFolder (так как папка уже существует):

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

После этого вы можете проверить его свойство 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

Работа с дис

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 dedtolya



Вопросов: 0
Ответов: 39
 Профиль | | #1 Добавлено: 07.05.03 10:27

Спасибо от деда Толи.

dedtolya

Ответить

Номер ответа: 2
Автор ответа:
 Неясов_Андрей



ICQ: 674522 

Вопросов: 17
Ответов: 21
 Web-сайт: fans.saturn-fc.ru
 Профиль | | #2
Добавлено: 07.05.03 10:56

А в чём собственно фишка ?

Ответить

Номер ответа: 3
Автор ответа:
 ZeroX



ICQ: 220401330 

Вопросов: 47
Ответов: 406
 Профиль | | #3 Добавлено: 07.05.03 11:40

Ты еще всю документацию Мелкософта по Васику сюда сунул ;)

Ответить

Номер ответа: 4
Автор ответа:
 Миха



ICQ: 394243 

Вопросов: 20
Ответов: 151
 Web-сайт: www.visualbasic.boom.ru
 Профиль | | #4
Добавлено: 07.05.03 16:41
Зачем столько всего известного??

Ответить

Номер ответа: 5
Автор ответа:
 V_B@SIC_mk



Вопросов: 14
Ответов: 19
 Профиль | | #5 Добавлено: 08.05.03 23:38

Пожалуйста не надо больше столько писать

А то очень долго читал(в он-лайне между прочим) , но ничего нового так и не нашёл

Ответить

Номер ответа: 6
Автор ответа:
 KolAR



Вопросов: 3
Ответов: 37
 Профиль | | #6 Добавлено: 09.05.03 01:34

Извняюсь - это вобще- это ответ на один из вопросов.

КЛИКНУЛ - С ПРОСОНЯ НЕ ПО ТОЙ КНОПКЕ !

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам