Sei sulla pagina 1di 7

19/9/2014

Introduo ao Modelo do File System Object no VB

Introduo ao Modelo do File System


Object no VB
Um novo recurso do Visual Basic o File System Object, que fornece uma ferramenta
baseada em objetos para trabalhar com pastas e arquivos. Isto permite que voc use a sintaxe
familiar de mtodos e propriedades de objetos com um conjunto rico de propriedades,
mtodos e eventos para fazer o processamento destes elementos.
O modelo de objetos do FSO lhe d a habilidade de criar, alterar, mover e excluir pastas e
detectar se uma pasta particular existe, e, existindo, onde. Tambm permite que voc obtenha
informaes sobre as pastas tais como seus nomes, a data em que foram criadas ou
modificadas pela ltima vez e assim por diante.
O modelo de objetos do FSO faz o processamento de arquivos muito mais fcil
tambm. Quando est processando arquivos, voc primeiramente tem como meta armazenar
informao num formato eficiente tanto na ocupao de espao como no acesso. Voc
precisa ser capaz de criar arquivos, incluir e atualizar e obter sada com eles. Se voc usar os
recursos de um banco de dados, isto pode ocasionar uma sobre carga de trabalho para a sua
aplicao. Por muitas razes voc pode no querer todo aquele aparato de acesso a dados
no seu sistema ou o seu acesso aos dados pode no requerer todas os recursos de um
sistema gerenciador de banco de dados. Neste caso, armazenar seus dados num arquivo
binrio ou de texto pode ser a soluo mais eficiente.
O modelo de objetos do FSO, que est contido na Scripting type library (Scrrun.Dll), suporta
criao de arquivos de texto e sua manipulao atravs do objeto TextStream. Ele ainda no
suporta a criao e manipulao de arquivos binrios. Para manipular arquivos binrios, use o
comando Open com o sinalizador Binary.

Os Objetos FSO
O modelo FSO contm estes objetos:
Objeto

Descrio

Drive

Permite que voc obtenha informaes dos drives anexados ao


sistema, tais como quanto de espao est disponvel, qual o seu
nome compartilhado e etc. Note que um drive no
necessariamente um disco rgido. Ele pode ser um drive de CDROM, um disco de RAM ou algo mais. Tambm no necessrio
que um drive esteja fisicamente ligado ao sistema. Ele pode estar
logicamente conectado atravs de uma LAN, por exemplo.

Folder

Permite que voc crie, exclua, mova pastas e consulte o sistema


sobre seus nomes, caminhos e outras informaes.

Files

Permite que voc crie, exclua, mova arquivos e consulte o sistema


sobre seus nomes, caminhos e outras informaes

http://www.codelines.com/manualvb/cap%C3%ADtulos/Cap%C3%ADtulo18.htm

1/7

19/9/2014

Introduo ao Modelo do File System Object no VB

O principal objeto do grupo, repleto de mtodos que lhe


FileSystemObject possibilitam criar, excluir, obter informaes sobre e manipular
genericamente drives, pastas e arquivos. Muitos dos mtodos
associados a este objeto duplicam aqueles de outros objetos.
TextStream

Habilita-o para ler e gravar arquivos texto.

Programando com o Modelo de Objetos FSO


A programao com o FSO envolve trs tarefas principais:
Usar o mtodo CreateObject , ou declarar uma varivel como do tipo FileSystemObject
usando o operador New para criar um objeto FileSystemObject.
Usar o mtodo apropriado no recm criado objeto.
Acessar as propriedades do objeto.
O modelo de objetos FSO est contida na biblioteca Scripting, que est localizada no arquivo
Scrrun.Dll. Se voc no tem uma referncia a ele, crie uma marcando na caixa de dilogo
References o item "Microsoft Scripting Runtime".
Criando um FileSystemObject
O primeiro passo criar o objeto FileSystemObject com o qual se vai trabalhar. Voc pode
faze-lo de duas maneiras:
Criando uma varivel do tipo FileSystemObject :
Dim fso As New FileSystemObject
ou
Usado o mtodo CreateObject para criar um objeto FileSystemObject:
Set fso = CreateObject("Scripting.FileSystemObject")
Na sintaxe acima, Scripting o nome da biblioteca de tipos e FileSystemObject o nome do
objeto do qual voc quer criar uma instncia.
Nota: O primeiro mtodo funciona apenas no Visual Basic, enquanto o segundo funciona tanto
no Visual Basic como no VBScript.
Usando o Mtodo apropriado
O prximo passo usar o mtodo apropriado do objeto FileSystemObject. Por exemplo, se
voc quer criar um novo objeto, voc pode tanto usar o mtodo CreateFolder ou
CreateTextFile. (O modelo de objetos FileSystemObject no suporta a criao ou excluso de
drives)
Se quer excluir objetos, voc pode usar os mtodos DeleteFile ou DeleteFolder do objeto
http://www.codelines.com/manualvb/cap%C3%ADtulos/Cap%C3%ADtulo18.htm

2/7

19/9/2014

Introduo ao Modelo do File System Object no VB

FileSystemObject, ou o mtodo Delete dos objetos File e Folder.


Usando os mtodos apropriados, voc pode tambm copiar e mover arquivos e pastas.
Note que parte da funcionalidade do FileSystemObject redundante. Por exemplo, voc pode
copiar um arquivo tanto usando o mtodo CopyFile do FileSystemObject quanto o mtodo
Copy do objeto File. Os mtodos fazem o mesmo. Ambos existem para dar a mxima
flexibilidade de programao.
Acessando Drives, Arquivos e Pastas Existentes
Para Ter acesso a um drive, arquivo ou pasta existente, use o mtodo "get" apropriado do
FileSystemObject.
GetDrive

GetFolder

GetFile
Por exemplo:
Dim fso As New FileSystemObject, fil As File
Set fil = fso.GetFile("c:\test.txt")
Note, contudo, que no necessrio usar os mtodos "get" para os objetos recm criados, j
que as funes de criao retornam uma referncia ao recm criado objeto. Por exemplo, se
voc criar uma nova pasta usando CreateFolder, no tem que usar o mtodo GetFolder para
acessar suas propriedades tais como Name, Size, Path e outras mais. Basta atribuir a uma
varivel o retorno da funo CreateFolder para ter acesso aos seus mtodos, propriedades e
eventos:

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
Acessando as Propriedades do Objeto
Uma vez que voc tem uma referncia a um objeto, pode acessar as suas propriedades . Por
exemplo, digamos que voc queira obter o nome de uma pasta em particular. Primeiro voc
cria uma instncia do objeto e obtm uma referncia a ele com o mtodo apropriado (neste
http://www.codelines.com/manualvb/cap%C3%ADtulos/Cap%C3%ADtulo18.htm

3/7

19/9/2014

Introduo ao Modelo do File System Object no VB

caso, o mtodo GetFolder, j que a pasta j existe):


Set fldr = fso.GetFolder("c:\")
Agora que voc tem uma referncia ao objeto Folder e pode checar sua propriedade Name:
Debug.Print "Nome da pasta : "; fldr.Name
Se voc quer saber quando foi feita a ltima modificao em um arquivo, use a seguinte
sintaxe:
Dim fso As New FileSystemObject, fil As File
Set fil = fso.GetFile("c:\detlog.txt") ' Obtm um objeto File para consulta.
Debug.Print "ltima modificao no arquivo: "; fil.DateLastModified

Trabalhando com Arquivos


Voc pode trabalhar com arquivos no Visual Basic 6 usando tanto usando os modernos
recursos do modelo FSO como os antigos recurso j existentes. Independente do tipo de
arquivo voc pode move-lo, copia-lo ou exclui-lo.
H duas principais categorias de manipulao de arquivos:
Criao, adio ou remoo de dados e leitura de arquivos.
Movimentao, cpia e excluso de arquivos.

Criao e Adio de Dados com os FileSystemObjects


H trs caminhos para criar arquivos de texto sequenciais (s vezes referido como "text
stream"). Um caminho usar o mtodo CreateTextFile. Para criar um arquivo de texto vazio:
Dim fso As New FileSystemObject, fil As File
Set fil = fso.CreateTextFile("c:\testfile.txt", True)

Nota O modelo FSO no suporta ainda a criao de arquivos randmicos ou binrios. Para
criar estes tipos de arquivos, use o comando Open com o argumento Random ou Binary.
Um outro meio usar o mtodo OpenTextFile do FileSystemObject com o flag ForWriting
ligado:
Dim fso As New FileSystemObject, ts As New TextStream
Set ts = fso.OpenTextFile("c:\test.txt", ForWriting)

Ou voc pode usar o mtodo OpenTextStream com o flag ForWriting ligado:


Dim fso As New FileSystemObject, fil As File, ts As TextStream
http://www.codelines.com/manualvb/cap%C3%ADtulos/Cap%C3%ADtulo18.htm

4/7

19/9/2014

Introduo ao Modelo do File System Object no VB

Set fso = CreateObject("Scripting.FileSystemObject")


fso.CreateTextFile ("test1.txt")
Set fil = fso.GetFile("test1.txt")
Set ts = fil.OpenAsTextStream(ForWriting)

Adicionando Dados ao Arquivo


Uma vez que o arquivo esteja criado, voc pode adicionar dados a em trs etapas:
1. Abra o arquivo texto para a gravao de dados
2. Grave os dados
3. Feche o arquivo
Para abrir o arquivo, voc tem que usar um de dois mtodos: OpenAsTextStream do objeto
File , ou o mtodo OpenTextFile do objeto FileSystemObject .
Para gravar dados para o arquivo texto, use ou o mtodo Write ou WriteLine do objeto
TextStream. A nica diferena entre Write e WriteLine que WriteLine adiciona caracteres de
final de linha string gravada. Se voc quiser adicionar novas linhas ao arquivo de texto, use o
mtodo WriteBlankLines.
Par fechar um arquivo aberto, use o mtodo Close do objeto TextStream. Aqui vai um exemplo
de como abrir um arquivo, usar os trs mtodo de gravao e o seu fechamento:
Sub Create_File()
Dim fso, txtfile
Set fso = CreateObject("Scripting.FileSystemObject")
Set txtfile = fso.CreateTextFile("c:\testfile.txt", True)
txtfile.Write ("This is a test. ") ' Write a line.
' Write a line with a newline character.
txtfile.WriteLine("Testing 1, 2, 3.")
' Write three newline characters to the file.
txtfile.WriteBlankLines(3)
txtfile.Close
End Sub

Lendo Arquivos com os FileSystemObjects


Para ler dados de um arquivo texto, use os mtodos Read, ReadLine ou ReadAll do objeto
TextStream.
Tarefa

Mtodo

Ler um nmero especfico de


caracteres de um arquivo.

Read

Ler uma linha inteira(at, mas no


incluindo, o caractere de nova linha)

ReadLine

Ler o contedo total de um arquivo

ReadAll

http://www.codelines.com/manualvb/cap%C3%ADtulos/Cap%C3%ADtulo18.htm

5/7

19/9/2014

Introduo ao Modelo do File System Object no VB

texto

Se voc usar os mtodos Read ou ReadLine e quiser saltar uma poro particular de dados,
voc pode usar os mtodos Skip ou SkipLine.
O texto resultante dos mtodos de leitura armazenado em uma string que pode ser exibida
num controle, manipulada por operadores de strings ( Tais como Left, Right, e Mid),
concatenada e assim por diante.
Nota: A constante vbNewLine contm um caracter ou caracteres ( dependendo do sistema
operacional) para avanar o cursor para o incio da prxima linha (carriage-return/linefeed).
Esteja consciente de que o final de algumas strings pode conter estes caracteres no
imprimveis.

Exemplo
Sub Read_Files()
Dim fso As New FileSystemObject, txtfile, _
fil1 As File, ts As TextStream
Set txtfile = fso.CreateTextFile("c:\testfile.txt", True)
MsgBox "Gravando arquivo"
' Write a line.
Set fil1 = fso.GetFile("c:\testfile.txt")
Set ts = fil1.OpenAsTextStream(ForWriting)
ts.Write "Hello Mundo"
ts.Close
' L o contedo do arquivo.
Set ts = fil1.OpenAsTextStream(ForReading)
s = ts.ReadLine
MsgBox s
ts.Close
End Sub

Movendo, Copiando, e Excluindo Arqiuvos


O modelo FSO tem dois mtodos tando para mover, copiar ou excluir arquivos.
Tarefa

Mtodo

Mover um arquivo

File.Move ou
FileSystemObject.MoveFile

Copiar um arquivo

File.Copy ou
FileSystemObject.CopyFile

Excluir um arquivo

File.Delete ou
FileSystemObject.DeleteFile

Exemplo
Este exemplo cria um arquivo texto no diretrio raiz do drive C, grava alguma informao nele, move o para um
diretrio chamado \tmp, faz uma cpia dele em um diretrio chamado \temp, e ento exclui as cpias de ambos
os diretrios.
http://www.codelines.com/manualvb/cap%C3%ADtulos/Cap%C3%ADtulo18.htm

6/7

19/9/2014

Introduo ao Modelo do File System Object no VB

Para rodar este exemplo, esteja certo de que voc tem diretrios chamados \tmp e \temp no seu diretrio raiz do
drive C.
Sub Manip_Files()
Dim fso as New FileSystemObject, txtfile, fil1, fil2
Set txtfile = fso.CreateTextFile("c:\testfile.txt", True)
MsgBox "Gravando arquivo"
' Grava uma linha.
txtfile.Write ("Isto um teste.")
' Fecha o arquivo.
txtfile.Close
MsgBox "Move o arquivo para c:\tmp"
' Obtm uma referncia para o arquivo no diretrio
' raiz de C
Set fil1 = fso.GetFile("c:\testfile.txt")
' Move para \tmp directory.
fil1.Move ("c:\tmp\testfile.txt")
MsgBox "Copiando para c:\temp"
' Copy the file to \temp.
fil1.Copy ("c:\temp\testfile.txt")
MsgBox "Excluindo"
' Obtm referncias para os arquivos.
Set fil1 = fso.GetFile("c:\tmp\testfile.txt")
Set fil2 = fso.GetFile("c:\temp\testfile.txt")
' Exclui os arquivos.
fil1.Delete
fil2.Delete
MsgBox "Tudo terminado!"
End Sub

http://www.codelines.com/manualvb/cap%C3%ADtulos/Cap%C3%ADtulo18.htm

7/7

Potrebbero piacerti anche