fso - tratando drives, diretórios e arquivos

9
Usando o FileSystemObject ‐ FSO ‐ Tratando arquivos e diretórios. Programando com o objeto FSO Se ao precisar criar , mover, deletar e obter informações sobre diretórios 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 serviço e obter qualquer informação sobre arquivos e diretórios de uma maneira simples. O modelo para o FileSystemObject ‐ FSO , é o seguinte: Objeto Descrição Drive Permite obter informações sobre os drives ( CD‐ROM, RAM disk, etc.) existentes no sistema, espaço disponível , nome, etc. Folder Pemite criar , excluir, copiar e mover diretórios e obter informações como nome, caminho, data de criação , etc. Files Pemite criar , excluir , copiar e mover arquivos e obter informações como nome, caminho, data de criação , etc. FileSystemObject O principal objeto do grupo, possui métodos que permitem criar, excluir, mover e obter as mais variadas informações sobre drives, arquivos e diretórios . TextStream Permite a leitura e a escrita em arquivos textos. Para usar o FSO faça o seguinte: 1. Defina um objeto FSO usando o método CreateObject ou declarando ( DIM ) uma variável objeto FSO. 2. Use o método 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 referência a esta library em seu projeto para poder usar o FSO . Para isto selecione no menu Project‐>References... procure por 'Microsoft Scripting Runtime' .

Upload: osmar-santos

Post on 16-Jan-2016

32 views

Category:

Documents


0 download

DESCRIPTION

Dicas sobre Visual Basic

TRANSCRIPT

Page 1: FSO - Tratando Drives, Diretórios e Arquivos

13/04/2015 FSO  Tratando drives, diretórios e arquivos

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

Usando o FileSystemObject ‐ FSO ‐Tratando arquivos e diretórios.

Programando com o objeto FSO

Se ao precisar criar , mover, deletar e obter informações sobre diretórios e arquivos noVB você usa as API do Windows talvez este artigo lhe seja útil: Você pode fazer tudoisto sem recorrer as API's. O VB6 trouxe como novidade o objeto FileSystemObject quepermite fazer praticamente todo este serviço e obter qualquer informação sobrearquivos e diretórios de uma maneira simples.

O modelo para o FileSystemObject ‐ FSO , é o seguinte:

Objeto DescriçãoDrive Permite obter informações sobre os drives ( CD‐ROM, RAM disk,

etc.) existentes no sistema, espaço disponível , nome, etc.Folder Pemite criar , excluir, copiar e mover diretórios e obter

informações como nome, caminho, data de criação , etc.Files Pemite criar , excluir , copiar e mover arquivos e obter

informações como nome, caminho, data de criação , etc.FileSystemObject O principal objeto do grupo, possui métodos que permitem criar,

excluir, mover e obter as mais variadas informações sobre drives,arquivos e diretórios .

TextStream Permite a leitura e a escrita em arquivos textos.

Para usar o FSO faça o seguinte:

1.  Defina um objeto FSO usando o método CreateObject ou declarando ( DIM ) umavariável objeto FSO.

2.  Use o método apropriado para criar o objeto definido3.  Acesse as propriedades do objeto FSO.

O objeto FSO esta presente em uma type library chamada Scripting a qual esta contidano arquivo Scrrun.dll. E você deve fazer uma referência a esta library em seu projetopara poder usar o FSO . Para isto selecione no menu Project‐>References... procurepor 'Microsoft Scripting Runtime' .

Page 2: FSO - Tratando Drives, Diretórios e Arquivos

13/04/2015 FSO  Tratando drives, diretórios e arquivos

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

Vejamos como criar um objeto FSO . Podemos fazer isto de duas maneiras:

1‐) Declarando uma variável objeto FSO. (funciona somente no VB )

Dim fso As New FileSystemObject

2‐) Usando o método CreateObject : (funciona no VB e no VBScript)

set fso = CreateObject("Scripting.FileSystemObject")

Agora é só usar os métodos e propriedades do objeto criado. Para ver os métodos epropriedades do objeto clique no link : FSO ‐ métodos e propriedades. A seguirveremos alguns exemplos de utilização:

Acessando Drives, Diretórios e Arquivos.

Para acessar um drive , arquivo ou diretório existente use o método "Get" ( GetFile ,GetDrive) apropriado do FSO.

1‐ Acessando o arquivo teste.txt no diretório c:\teste e visualizando : o tamanho, adata de criaçao, a data de último acesso, a data da última modificação.(iremosmostrar a informação em um controle ListBox ‐ list1)

Inicie um novo projeto no VB e no formulário padrão insira um TextBox ‐ text1.text ‐ ,um ListBox ‐ list1 e um botão de comando ‐ command1 . Veja layout abaixo:

Page 3: FSO - Tratando Drives, Diretórios e Arquivos

13/04/2015 FSO  Tratando drives, diretórios e arquivos

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

O resultado do processamento do códigoabaixo

Private Sub Command1_Click()Dim fso As New FileSystemObjectDim arq As File

Set arq = fso.GetFile(Text1.Text)

With arq List1.AddItem "Tamanho : " & vbTab & FormatNumber(.Size, 0) List1.AddItem "Data de criação : " & vbTab & .DateCreated List1.AddItem "Último acesso : " & vbTab & .DateLastAccessed List1.AddItem "Última alteração : " & vbTab & .DateLastModified List1.AddItem "nome abreviado : " & vbTab & .ShortNameEnd With

End Sub

2 ‐ Acessando o diretório c:\ e visualizando : a letra associada ao drive, o nome doVolume, espaço total, espaço disponível e o número de série do drive e o tipo dodriver. (iremos mostrar a informação em um controle ListBox ‐ list1)

Para verificar se o drive esta pronto usamos a propriedade IsReady.

Inicie um novo projeto no VB e no formulário padrão insira uma combobox ‐ combo1 ‐ ,um ListBox ‐ list1 e um botão de comando ‐ command1 : Veja layout abaixo

O resultado do processamento do código abaixo

Private Sub Command1_Click()Dim fso As New FileSystemObjectDim arquivo As driveSet arquivo = fso.GetDrive(Combo1.Text)With arquivo If .IsReady Then

Page 4: FSO - Tratando Drives, Diretórios e Arquivos

13/04/2015 FSO  Tratando drives, diretórios e arquivos

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

List1.AddItem "Letra associada ao drive : " & .DriveLetter List1.AddItem "Nome do Volume : " & .VolumeName List1.AddItem "Espaço total do drive : " & FormatNumber(.TotalSize / 1024, 0) List1.AddItem "Espaço disponível livre no drive : " & FormatNumber(.FreeSpace / 1024, 0) List1.AddItem "Número de série do drive : " & .SerialNumber List1.AddItem "Tipo do drive: " & .DriveTypeElse MsgBox " A unidade não esta pronta !! Verifique !!", vbCritical, "Erro de acesso"End IfEnd WithEnd Sub

Tratamento de arquivos Texto1 ‐ Acessando arquivos texto : criando , lendo , copiando e excluindo...

Criando um arquivo em c:\teste chamado ArqTeste.txt e escrevendo no arquivo e aseguir lendo o conteúdo do arquivo e a seguir movendo o arquivo criado para odiretório c:\temp

Inicie um novo projeto no VB e no formulário padrão insira três TextBox ‐ text1 , text2e text3 e text4 e quatro botões de comando : (a caixa de texto que exibe o arquivodeve ser Multiline)

cmdcriararqtxtcmdlerarqtxtcmdcopiararqtxtcmdexcluirarqtxt

Veja layout abaixo:

O resultado do processamento docódigo abaixo

‐ O código da seção General Declarations do formulário :

Dim fso As New FileSystemObjectDim arqtxt As TextStreamDim arq1 As TextStreamDim arq3 As TextStreamDim arq2 As TextStreamDim texto As String

Page 5: FSO - Tratando Drives, Diretórios e Arquivos

13/04/2015 FSO  Tratando drives, diretórios e arquivos

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

‐ O código do botão ‐ Criar Arquivo Texto: Observe o uso das propriedades Write eWriteline

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 gravação em arquivo texto.") .WriteLine (" Macoratti acabou de criar este arquivo texto") .Write "nome do arquivo " & Text2.Text .CloseEnd WithMsgBox " Arquivo : " & Text2.Text & " Criado com sucesso ", vbInformationExit Sub

trataerro:MsgBox Err.Description & " ‐ " & Err.Number, vbCritical

End Sub

‐ O código do botão ‐ Ler arquivo texto : Abrimos o arquivo para leitura e lemos todo oconteúdo do arquivo (ReadAll)

Private Sub cmdlerarqtxt_Click()'Lendo o arquivo criado

On Error GoTo trataerroSet arq2 = fso.OpenTextFile(Text3.Text, ForReading, True)texto = arq2.ReadAll

'mostrando o conteúdo do arquivoText1.Text = texto

arq2.CloseExit Sub

trataerro:If Err.Number = 53 Then MsgBox "Arquivo <<" & Text4.Text & ">> não encontrado !", vbCriticalElse MsgBox Err.Description & " ‐ " & Err.Number, vbCriticalEnd If

End Sub

‐ O código do botão ‐ Copiar arquivo texto : usamos a propriedade CopyFile

Page 6: FSO - Tratando Drives, Diretórios e Arquivos

13/04/2015 FSO  Tratando drives, diretórios e arquivos

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

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 >> ", vbInformationExit Sub

trataerro:If Err.Number = 53 Then MsgBox "Arquivo <<" & Text4.Text & ">> não encontrado !", vbCriticalElse MsgBox Err.Description & " ‐ " & Err.Number, vbCriticalEnd IfEnd Sub

‐ O código do botão ‐ Excluir arquivo texto: Usamos a propriedade : DeleteFile.

Private Sub cmdexcluirarqtxt_Click()'Excluindo o arquivo de c:\teste

On Error GoTo trataerrofso.DeleteFile Text4.Text, True

MsgBox "Arquivo => " & Text4.Text & " << Excluido >> ", vbInformationExit Sub

trataerro:If Err.Number = 53 Then MsgBox "Arquivo <<" & Text4.Text & ">> não encontrado !", vbCriticalElse MsgBox Err.Description & " ‐ " & Err.Number, vbCriticalEnd If

End Sub

2 ‐ Criando um arquivo temporário

Vou mostrar agora como obter nome de um arquivo temporário e copiar um arquivopara este arquivo. Para isto vamos usar o método : GetTempName .

Este método um nome de arquivo/diretório temporário randomicamente que podemosusar 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 combinação de alguns métodos e propriedades do objeto FileSystemObject ealgum código podemos criar uma rotina para localizar arquivos. Vamos a ela...

Page 7: FSO - Tratando Drives, Diretórios e Arquivos

13/04/2015 FSO  Tratando drives, diretórios e arquivos

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

Inicie um novo projeto no VB e no formulário padrão insira um TextBox ‐ text1.text ‐ ,um ListBox ‐ list1 e um botão de comando ‐ command1 . Veja layout abaixo:

O resultado doprocessamento do códigoabaixo

O código do botão de comando ‐ Iniciar Busca :

Private Sub cmdbusca_Click()

Call procuraArquivos(fso.GetFolder(Combo1.Text))

If Not achei Then msg = "Não 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 código da rotina ‐ procuraArquivos ‐ onde passamos como argumento o driverinformado na combobox.

Private Sub procuraArquivos(diretorio As Folder)Dim arquivo As FileDim subdiretorio As Folder

For Each arquivo In diretorio.Files If arquivo.Name Like Text1.Text Then List1.AddItem arquivo.Name achei = True contador = contador + 1End IfNext

End Sub

Observe o uso do operador LIKE doVisual Basic.

A sintaxe de Like é a seguinte : result= string Like pattern

result ‐ qualquer variávelnuméricastring ‐ qualquer expressãostringpattern ‐ uma expressão stringde comparação

Exemplos :

1.  Dim MyCheckMyCheck = "aBBBa" Like "a*a" 'Retorna True.MyCheck = "F" Like "[A‐Z]" 'Retorna True.

Page 8: FSO - Tratando Drives, Diretórios e Arquivos

13/04/2015 FSO  Tratando drives, diretórios e arquivos

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

MyCheck = "F" Like "[!A‐Z]" 'Retorna False.MyCheck = "a2a" Like "a#a" 'Retorna True.

A utilização das propriedades é quase intuitiva , basta usar o intellisense que objetoexibirá as propriedades disponíveis . Moleza !!! não é 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 Básico VB .NET ‐ Vídeo Aulas

Quer aprender C# ??

Chegou o Super DVD C# com exclusivo

material de suporte e vídeo aulas com curso

básico sobre C#.

Curso C# Basico ‐ Video Aulas

Quer aprender os conceitos da

Programação Orientada a objetos ?

Curso Fundamentos da ProgramaçãoOrientada a Objetos com VB .NET

Quer aprender o gerar relatórios com o

ReportViewer no VS 2013 ?

 Curso ‐ Gerando Relatórios com o

ReportViewer no VS 2013 ‐ Vídeo

Aulas

Page 9: FSO - Tratando Drives, Diretórios e Arquivos

13/04/2015 FSO  Tratando drives, diretórios e arquivos

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

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:

Seção VB .NET do Site Macoratti.net

Super DVD .NET ‐ A sua porta de entrada na plataforma .NET

Super DVD Vídeo Aulas ‐ Vídeo Aula sobre VB .NET, ASP .NET e C#

Seção C# do site Macoratti.net

Super DVD C#

Super DVD Visual Basic

Curso Básico VB .NET ‐ Vídeo Aulas

Curso C# Básico ‐ Vídeo Aulas

jQuery ‐ Conceitos ‐ Macoratti.net

Entity Frameweork 4 ‐ Usando Data Annotations ‐ Macoratti

Compreendendo Models, Views e Controllers ‐ MVC

Padrões de Projeto ‐ O modelo MVC ‐ Model View Controller

ASP .NET ‐ MVC ‐ Introdução ‐ Macoratti.net

ASP .NET MVC 3 ‐ Um pouco de Validações e Verificações

C# ‐ Validando dados com Data Annotations ‐ Macoratti.net

Usando JSON com ASP .NET ‐ Macoratti.net

JSON ‐ Introdução e conceitos básicos ‐ 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

José Carlos Macoratti