Sunteți pe pagina 1din 9

13/04/2015

FSOTratandodrives,diretriosearquivos

Usando o FileSystemObject FSO


Tratando arquivos e diretrios.
Programando com o objeto FSO
Se ao precisar criar , mover, deletar e obter informaes sobre diretrios e arquivos no
VB voc usa as API do Windows talvez este artigo lhe seja til: Voc pode fazer tudo
isto sem recorrer as API's. O VB6 trouxe como novidade o objeto FileSystemObject que
permite fazer praticamente todo este servio e obter qualquer informao sobre
arquivos e diretrios de uma maneira simples.
O modelo para o FileSystemObject FSO , o seguinte:
Objeto
Drive

Descrio
Permite obter informaes sobre os drives ( CDROM, RAM disk,
etc.) existentes no sistema, espao disponvel , nome, etc.
Folder
Pemite criar , excluir, copiar e mover diretrios e obter
informaes como nome, caminho, data de criao , etc.
Files
Pemite criar , excluir , copiar e mover arquivos e obter
informaes como nome, caminho, data de criao , etc.
FileSystemObject O principal objeto do grupo, possui mtodos que permitem criar,
excluir, mover e obter as mais variadas informaes sobre drives,
arquivos e diretrios .
TextStream
Permite a leitura e a escrita em arquivos textos.
Para usar o FSO faa o seguinte:
1. Defina um objeto FSO usando o mtodo CreateObject ou declarando ( DIM ) uma
varivel objeto FSO.
2. Use o mtodo apropriado para criar o objeto definido
3. Acesse as propriedades do objeto FSO.
O objeto FSO esta presente em uma type library chamada Scripting a qual esta contida
no arquivo Scrrun.dll. E voc deve fazer uma referncia a esta library em seu projeto
para poder usar o FSO . Para isto selecione no menu Project>References... procure
por 'Microsoft Scripting Runtime' .

http://www.macoratti.net/filesyst.htm

1/9

13/04/2015

FSOTratandodrives,diretriosearquivos

Vejamos como criar um objeto FSO . Podemos fazer isto de duas maneiras:
1) Declarando uma varivel objeto FSO. (funciona somente no VB )
Dim fso As New FileSystemObject
2) Usando o mtodo CreateObject : (funciona no VB e no VBScript)
set fso = CreateObject("Scripting.FileSystemObject")
Agora s usar os mtodos e propriedades do objeto criado. Para ver os mtodos e
propriedades do objeto clique no link : FSO mtodos e propriedades. A seguir
veremos alguns exemplos de utilizao:
Acessando Drives, Diretrios e Arquivos.
Para acessar um drive , arquivo ou diretrio existente use o mtodo "Get" ( GetFile ,
GetDrive) apropriado do FSO.
1 Acessando o arquivo teste.txt no diretrio c:\teste e visualizando : o tamanho, a
data de criaao, a data de ltimo acesso, a data da ltima modificao.(iremos
mostrar a informao em um controle ListBox list1)
Inicie um novo projeto no VB e no formulrio padro insira um TextBox text1.text ,
um ListBox list1 e um boto de comando command1 . Veja layout abaixo:

http://www.macoratti.net/filesyst.htm

2/9

13/04/2015

FSOTratandodrives,diretriosearquivos

O resultado do processamento do cdigo


abaixo

Private Sub Command1_Click()


Dim fso As New FileSystemObject
Dim arq As File
Set arq = fso.GetFile(Text1.Text)
With arq
List1.AddItem
List1.AddItem
List1.AddItem
List1.AddItem
List1.AddItem
End With

"Tamanho : " & vbTab & FormatNumber(.Size, 0)


"Data de criao : " & vbTab & .DateCreated
"ltimo acesso : " & vbTab & .DateLastAccessed
"ltima alterao : " & vbTab & .DateLastModified
"nome abreviado : " & vbTab & .ShortName

End Sub
2 Acessando o diretrio c:\ e visualizando : a letra associada ao drive, o nome do
Volume, espao total, espao disponvel e o nmero de srie do drive e o tipo do
driver. (iremos mostrar a informao em um controle ListBox list1)
Para verificar se o drive esta pronto usamos a propriedade IsReady.
Inicie um novo projeto no VB e no formulrio padro insira uma combobox combo1 ,
um ListBox list1 e um boto de comando command1 : Veja layout abaixo

O resultado do processamento do cdigo abaixo

Private Sub Command1_Click()


Dim fso As New FileSystemObject
Dim arquivo As drive
Set arquivo = fso.GetDrive(Combo1.Text)
With arquivo
If .IsReady Then
http://www.macoratti.net/filesyst.htm

3/9

13/04/2015

FSOTratandodrives,diretriosearquivos

List1.AddItem "Letra associada ao drive : " & .DriveLetter


List1.AddItem "Nome do Volume : " & .VolumeName
List1.AddItem "Espao total do drive : " & FormatNumber(.TotalSize / 1024, 0)
List1.AddItem "Espao disponvel livre no drive : " & FormatNumber(.FreeSpace / 1024, 0)
List1.AddItem "Nmero de srie do drive : " & .SerialNumber
List1.AddItem "Tipo do drive: " & .DriveType
Else
MsgBox " A unidade no esta pronta !! Verifique !!", vbCritical, "Erro de acesso"
End If
End With
End Sub

Tratamento de arquivos Texto


1 Acessando arquivos texto : criando , lendo , copiando e excluindo...
Criando um arquivo em c:\teste chamado ArqTeste.txt e escrevendo no arquivo e a
seguir lendo o contedo do arquivo e a seguir movendo o arquivo criado para o
diretrio c:\temp
Inicie um novo projeto no VB e no formulrio padro insira trs TextBox text1 , text2
e text3 e text4 e quatro botes de comando : (a caixa de texto que exibe o arquivo
deve ser Multiline)
cmdcriararqtxt
cmdlerarqtxt
cmdcopiararqtxt
cmdexcluirarqtxt
Veja layout abaixo:

O resultado do processamento do
cdigo abaixo

O cdigo da seo General Declarations do formulrio :


Dim
Dim
Dim
Dim
Dim
Dim

fso As New FileSystemObject


arqtxt As TextStream
arq1 As TextStream
arq3 As TextStream
arq2 As TextStream
texto As String

http://www.macoratti.net/filesyst.htm

4/9

13/04/2015

FSOTratandodrives,diretriosearquivos

O cdigo do boto Criar Arquivo Texto: Observe o uso das propriedades Write e
Writeline
Private Sub cmdcriararqtxt_Click()
On Error GoTo trataerro
Set arqtxt = fso.CreateTextFile(Text2.Text, True)
'gravando no arquivo
With arqtxt
.WriteLine ("Isto um teste")
.Write ("de gravao em arquivo texto.")
.WriteLine (" Macoratti acabou de criar este arquivo texto")
.Write "nome do arquivo " & Text2.Text
.Close
End With
MsgBox " Arquivo : " & Text2.Text & " Criado com sucesso ", vbInformation
Exit Sub
trataerro:
MsgBox Err.Description & " " & Err.Number, vbCritical
End Sub
O cdigo do boto Ler arquivo texto : Abrimos o arquivo para leitura e lemos todo o
contedo do arquivo (ReadAll)
Private Sub cmdlerarqtxt_Click()
'Lendo o arquivo criado
On Error GoTo trataerro
Set arq2 = fso.OpenTextFile(Text3.Text, ForReading, True)
texto = arq2.ReadAll
'mostrando o contedo do arquivo
Text1.Text = texto
arq2.Close
Exit Sub
trataerro:
If Err.Number = 53 Then
MsgBox "Arquivo <<" & Text4.Text & ">> no encontrado !", vbCritical
Else
MsgBox Err.Description & " " & Err.Number, vbCritical
End If
End Sub
O cdigo do boto Copiar arquivo texto : usamos a propriedade CopyFile

http://www.macoratti.net/filesyst.htm

5/9

13/04/2015

FSOTratandodrives,diretriosearquivos

Private Sub cmdcopiararqtxt_Click()


'Copiando o arquivo para c:\temp
On Error GoTo trataerro
fso.CopyFile Text4.Text, "c:\temp\", True
MsgBox "Arquivo => " & Text4.Text & " << COPIADO >> ", vbInformation
Exit Sub
trataerro:
If Err.Number = 53 Then
MsgBox "Arquivo <<" & Text4.Text & ">> no encontrado !", vbCritical
Else
MsgBox Err.Description & " " & Err.Number, vbCritical
End If
End Sub
O cdigo do boto Excluir arquivo texto: Usamos a propriedade : DeleteFile.
Private Sub cmdexcluirarqtxt_Click()
'Excluindo o arquivo de c:\teste
On Error GoTo trataerro
fso.DeleteFile Text4.Text, True
MsgBox "Arquivo => " & Text4.Text & " << Excluido >> ", vbInformation
Exit Sub
trataerro:
If Err.Number = 53 Then
MsgBox "Arquivo <<" & Text4.Text & ">> no encontrado !", vbCritical
Else
MsgBox Err.Description & " " & Err.Number, vbCritical
End If
End Sub
2 Criando um arquivo temporrio
Vou mostrar agora como obter nome de um arquivo temporrio e copiar um arquivo
para este arquivo. Para isto vamos usar o mtodo : GetTempName .
Este mtodo um nome de arquivo/diretrio temporrio randomicamente que podemos
usar para realizar algumas tarefas como copia ou backup. Exemplo :
Dim fso As New FileSystemObject
Call fso.CopyFile(Text1.Text, fso.GetTempName)
3 Localizando arquivos
Com a combinao de alguns mtodos e propriedades do objeto FileSystemObject e
algum cdigo podemos criar uma rotina para localizar arquivos. Vamos a ela...
http://www.macoratti.net/filesyst.htm

6/9

13/04/2015

FSOTratandodrives,diretriosearquivos

Inicie um novo projeto no VB e no formulrio padro insira um TextBox text1.text ,


um ListBox list1 e um boto de comando command1 . Veja layout abaixo:

O resultado do
processamento do cdigo
abaixo

O cdigo do boto de comando Iniciar Busca :


Private Sub cmdbusca_Click()
Call procuraArquivos(fso.GetFolder(Combo1.Text))
If Not achei Then
msg = "No foi possivel localizar o(s) arquivo(s) informado."
Else
msg = "Foram localizados " & contador & " arquivo(s) com sucesso."
End If
MsgBox msg, vbInformation, "Localizando arquivos."
End Sub
Agora o cdigo da rotina procuraArquivos onde passamos como argumento o driver
informado na combobox.
Observe o uso do operador LIKE do
Visual Basic.
A sintaxe de Like a seguinte : result
= string Like pattern
Private Sub procuraArquivos(diretorio As Folder)
Dim arquivo As File
Dim subdiretorio As Folder
For Each arquivo In diretorio.Files
If arquivo.Name Like Text1.Text Then
List1.AddItem arquivo.Name
achei = True
contador = contador + 1
End If
Next
End Sub
http://www.macoratti.net/filesyst.htm

result qualquer varivel


numrica
string qualquer expresso
string
pattern uma expresso string
de comparao
Exemplos :
1. Dim MyCheck
MyCheck = "aBBBa" Like "a*a" '
Retorna True.
MyCheck = "F" Like "[AZ]" '
Retorna True.
7/9

13/04/2015

FSOTratandodrives,diretriosearquivos

MyCheck = "F" Like "[!AZ]" '


Retorna False.
MyCheck = "a2a" Like "a#a" '
Retorna True.
A utilizao das propriedades quase intuitiva , basta usar o intellisense que objeto
exibir as propriedades disponveis . Moleza !!! no mesmo ???
Tchau !!! Voltaremos a este assunto em breve , at la....
Veja os Destaques e novidades do SUPER DVD
Visual Basic (sempre atualizado) : clique e confira
!

Quer migrar para o VB .NET ?


Veja mais sistemas completos para a
plataforma .NET no Super DVD .NET ,
confira...

Curso Bsico VB .NET Vdeo Aulas


Quer aprender C# ??
Chegou o Super DVD C# com exclusivo
material de suporte e vdeo aulas com curso
bsico sobre C#.

Curso C# Basico Video Aulas


Quer aprender os conceitos da
Programao Orientada a objetos ?
Curso Fundamentos da Programao
Orientada a Objetos com VB .NET
Quer aprender o gerar relatrios com o
ReportViewer no VS 2013 ?
Curso Gerando Relatrios com o
ReportViewer no VS 2013 Vdeo
Aulas

http://www.macoratti.net/filesyst.htm

8/9

13/04/2015

FSOTratandodrives,diretriosearquivos

Gostou ?

Compartilhe no Facebook

Compartilhe no Twitter

Referncias:
Seo VB .NET do Site Macoratti.net
Super DVD .NET A sua porta de entrada na plataforma .NET
Super DVD Vdeo Aulas Vdeo Aula sobre VB .NET, ASP .NET e C#
Seo C# do site Macoratti.net
Super DVD C#
Super DVD Visual Basic
Curso Bsico VB .NET Vdeo Aulas
Curso C# Bsico Vdeo Aulas
jQuery Conceitos Macoratti.net
Entity Frameweork 4 Usando Data Annotations Macoratti
Compreendendo Models, Views e Controllers MVC
Padres de Projeto O modelo MVC Model View Controller
ASP .NET MVC Introduo Macoratti.net
ASP .NET MVC 3 Um pouco de Validaes e Verificaes
C# Validando dados com Data Annotations Macoratti.net
Usando JSON com ASP .NET Macoratti.net
JSON Introduo e conceitos bsicos Macoratti.net
ASP .NET Apresentando o ASP .NET MVC 3 Macoratti.net
ASP .NET Apresentando a sintaxe Razor Macoratti.net
.NET Razor, um pouco mais sobre ele Macoratti.net
JosCarlosMacoratti

http://www.macoratti.net/filesyst.htm

9/9

S-ar putea să vă placă și