Neste artigo vou mostrar rapidamente as algumas operações básicas com arquivos usando o VB.NET. Iremos usar o namespace : System.IO , por isto devemos referenciá-lo em nosso projeto se não quisermos digitar nomes longos para comandos usados no exemplo.
Abaixo mostramos as classes :
System.IO.File que fornece métodos estáticos para criar , copiar , mover e abrir arquivos.
System.IO.Directory que expõe métodos estáticos para criar , mover , enumerar diretórios e subdiretórios.
O VB.NET permite que o tratamento de arquivos possa ser feito de uma centena de formas diferentes , e, isto pode causar uma certa confusão. Podemos dividir as alternativas em três categorias :
Os métodos fornecidos pelo VB.NET em tempo de execução
O FileSystemObject (lembra dele)
Os métodos oferecidos pela CLR - Common Language Runtime
Com o tempo vamos adquirindo experiência e saberemos qual o melhor alternativa usar.
Eu estou usando a release final do Visual Studio , mas creio que os exemplos aqui mostrados também funcione na versão beta 2 (não testei).As tarefas básicas que iremos abordar serão as seguintes :
Criar diretórios
Excluir diretórios
Exibir o conteúdo de um diretório
Exibir os atributos de um arquivo
Por tabela você também aprende com usar MessageBox e InputBox no VB.NET. Vamos lá...
Inicie um novo projeto no Visual Studio do tipo - Visual Basic Projects usando o template Windows Application
O nome do projeto será AcessaBD e será salvo na pasta c:\vbnet
No formulário padrão insira os seguintes controles :(conforme o layout abaixo)
- uma label - label1
- um TextBox - textbox1
- cinco botões de comandos
button1 , button2 , button3 , button4 e button5
- um ListBox - Listbox1
- um GroupBox - Groupbox1
- um ListBox - ListBox1
Agora vamos ao código do projeto:
Criando diretórios e subdiretórios
- No evento click do botão - Button1 - insira o código abaixo que irá criar um diretório/subdiretório conforme informado na caixa de texto : TextBox1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox1.Text <> "" Then
Directory.CreateDirectory(TextBox1.Text)
MessageBox.Show("O diretório <<" & TextBox1.Text & ">> foi cria com sucesso !!", "VB.NET - Criando Diretórios", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
MessageBox.Show("Informe o caminho e nome do diretorio que deseja Criar !", "VB.NET - Criando Diretórios", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End Sub
Ao executar o projeto e clicar no botão - Criar Diretório - teremos o seguinte resultado:
A instrução que efetivamente cria o diretório é :
Directory.CreateDirectory(TextBox1.Text)
Aqui usamos o método CreateDirectory.
- No exemplo eu criei o diretório dir_1 .
- De propósito eu informei um caminho onde o subdiretórios macoratti e teste não existiam ; no entanto eles foram criados.
- Se tentar fazer isto no VB6 usando o filesystemobject vai obter um erro.
Excluindo diretórios e subdiretórios
- No evento click do botão - Button2 - insira o código abaixo que irá excluir um diretório/subdiretório conforme informado na caixa de texto : TextBox1
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If TextBox1.Text <> "" Then
If Directory.Exists(TextBox1.Text) Then
Directory.Delete(TextBox1.Text)
MessageBox.Show("O diretório <<" & TextBox1.Text & ">> foi excluida com sucesso !!", "VB.NET - Criando Diretórios", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
MessageBox.Show("O diretório <<" & TextBox1.Text & ">> não existe, Verifique !!", "VB.NET - Criando Diretórios", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Else
MessageBox.Show("Informe o caminho e nome do diretorio que deseja Excluir !", "VB.NET - Criando Diretórios", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End Sub
Ao executar o projeto e clicar no botão - Exclui Diretório - teremos o seguinte resultado:-
- Para excluir o diretório usamos o método - Directory.Delete(TextBox1.Text)
- Antes de executar a instrução verificamos se o diretório existe usando o método - Exists - Directory.Exists(TextBox1.Text)
Listando o conteúdo de diretórios e subdiretórios
- No evento click do botão - Button3 - insira o código abaixo que irá listar o conteúdo de um diretório/subdiretório conforme informado na caixa de texto : TextBox1
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button3.Click
Dim nomearq As String
Dim subdir As String
If TextBox1.Text <> "" Then
Dim msg, titulo, valor As String
Dim objValor As Object
msg = "Informe a extensão do arquivo.Exemplo: *.exe "
titulo = "Listar arquivos" ' define o titulo.
valor = "*.exe" ' define o valor padrao
' Exibe mensagem posicionada
objValor = InputBox(msg, titulo, valor, 200, 200)
Me.ListBox1.Items.Clear()
Me.ListBox1.Items.Add(New String(TextBox1.Text))
For Each nomearq In Directory.GetFiles(TextBox1.Text, objValor)
Me.ListBox1.Items.Add(New String(nomearq))
Next
Else
MessageBox.Show("Informe o caminho/nome do diretorio para Listar !", "VB.NET - Criando Diretórios",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End Sub
O conteúdo do diretório informado é exibido em uma caixa de listagem - ListBox . Podemos usar um filtro para exibir arquivos com determinada extensão. Usamos uma InputBox para receber esta informação.
Ao executar o projeto e clicar no botão - Exibe Conteúdo - teremos o resultado a seguir.
- Definimos a função InputBox para permitir ao usuário informa a extensão dos arquivos que deseja listar :
Dim msg, titulo, valor As String
Dim objValor As Object
msg = "Informe a extensão do arquivo.Exemplo: *.exe "
titulo = "Listar arquivos" ' define o titulo.
valor = "*.exe" ' define o valor padrao
' Exibe mensagem posicionada
objValor = InputBox(msg, titulo, valor, 200, 200)
- Usando o método GetFiles para retornar o nome dos arquivos no diretório informado:
For Each nomearq In Directory.GetFiles(TextBox1.Text, objValor)
Me.ListBox1.Items.Add(New String(nomearq))
Next
Exibindo os atributos de um arquivo
Obtemos os atributos do arquivo informado em - TextBox1 - através dos métodos da classe - System.IO.File -
GetCreationTime
GetLastAccessTime
GetLastWriteTime
e da classe - FileVersionInfo - que fornece informações sobre atributos de um arquivo. Algumas das propriedades da classe estão listadas abaixo:
Comments Obtém os comentários associados ao arquivo.
CompanyName Obtém o nome da empresa que criou o arquivo.
FileBuildPart Obtém o número de criação do arquivo.
FileDescription Obtém a descrição do arquivo.
FileVersion obtem o número da versão
InternalName obtém o nome interno do arquivo , se existir.
- No evento click do botão - Button4 - insira o código abaixo que irá exibir os atributos de um arquivo conforme informado na caixa de texto : TextBox1
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim nomearq As String
If TextBox1.Text <> "" Then
If File.Exists(TextBox1.Text) Then
Dim fvi As FileVersionInfo = FileVersionInfo.GetVersionInfo(TextBox1.Text)
Me.ListBox1.Items.Clear()
Me.ListBox1.Items.Add(New String(TextBox1.Text))
Me.ListBox1.Items.Add(New String("Data da criação : " & File.GetCreationTime(TextBox1.Text)))
Me.ListBox1.Items.Add(New String("Último acesso : " & File.GetLastAccessTime(TextBox1.Text)))
Me.ListBox1.Items.Add(New String("Última alteração : " & File.GetLastWriteTime(TextBox1.Text)))
Me.ListBox1.Items.Add(New String("Nome da Empresa : " & fvi.CompanyName))
Me.ListBox1.Items.Add(New String("Versão : " & fvi.FileVersion))
Me.ListBox1.Items.Add(New String("Descrição : " & fvi.FileDescription))
Else
MessageBox.Show("O Arquivo/diretório <<" & TextBox1.Text & ">> não existe, Verifique !!",
"VB.NET - Criando Diretórios", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Else
MessageBox.Show("Informe o caminho e nome do diretorio para exibir atributos !",
"VB.NET - Criando Diretórios", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End Sub
Ao executar o projeto e clicar no botão - Mostrar Conteúdo- teremos o resultado a seguir.
- O resultado é exibido na caixa de listagem - ListBox1.
Me.ListBox1.Items.Add(New String("Data da criação : " & File.GetCreationTime(TextBox1.Text)))
Finalmente o código associado ao evento click do botão - Button5 - que encerra o sistema.
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
If MessageBox.Show("Deseja realmente sair ? ", "Encerrar", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
End
End If
Deu para sentir que o VB.NET possui recursos que nos permitem obter resultados com pouco código. Neste artigo procurei mostrar alguns destes recursos de forma simples para você ir se acostumando...
Até o próximo artigo VB
Abaixo mostramos as classes :
System.IO.File que fornece métodos estáticos para criar , copiar , mover e abrir arquivos.
System.IO.Directory que expõe métodos estáticos para criar , mover , enumerar diretórios e subdiretórios.
O VB.NET permite que o tratamento de arquivos possa ser feito de uma centena de formas diferentes , e, isto pode causar uma certa confusão. Podemos dividir as alternativas em três categorias :
Os métodos fornecidos pelo VB.NET em tempo de execução
O FileSystemObject (lembra dele)
Os métodos oferecidos pela CLR - Common Language Runtime
Com o tempo vamos adquirindo experiência e saberemos qual o melhor alternativa usar.
Eu estou usando a release final do Visual Studio , mas creio que os exemplos aqui mostrados também funcione na versão beta 2 (não testei).As tarefas básicas que iremos abordar serão as seguintes :
Criar diretórios
Excluir diretórios
Exibir o conteúdo de um diretório
Exibir os atributos de um arquivo
Por tabela você também aprende com usar MessageBox e InputBox no VB.NET. Vamos lá...
Inicie um novo projeto no Visual Studio do tipo - Visual Basic Projects usando o template Windows Application
O nome do projeto será AcessaBD e será salvo na pasta c:\vbnet
No formulário padrão insira os seguintes controles :(conforme o layout abaixo)
- uma label - label1
- um TextBox - textbox1
- cinco botões de comandos
button1 , button2 , button3 , button4 e button5
- um ListBox - Listbox1
- um GroupBox - Groupbox1
- um ListBox - ListBox1
Agora vamos ao código do projeto:
Criando diretórios e subdiretórios
- No evento click do botão - Button1 - insira o código abaixo que irá criar um diretório/subdiretório conforme informado na caixa de texto : TextBox1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox1.Text <> "" Then
Directory.CreateDirectory(TextBox1.Text)
MessageBox.Show("O diretório <<" & TextBox1.Text & ">> foi cria com sucesso !!", "VB.NET - Criando Diretórios", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
MessageBox.Show("Informe o caminho e nome do diretorio que deseja Criar !", "VB.NET - Criando Diretórios", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End Sub
Ao executar o projeto e clicar no botão - Criar Diretório - teremos o seguinte resultado:
A instrução que efetivamente cria o diretório é :
Directory.CreateDirectory(TextBox1.Text)
Aqui usamos o método CreateDirectory.
- No exemplo eu criei o diretório dir_1 .
- De propósito eu informei um caminho onde o subdiretórios macoratti e teste não existiam ; no entanto eles foram criados.
- Se tentar fazer isto no VB6 usando o filesystemobject vai obter um erro.
Excluindo diretórios e subdiretórios
- No evento click do botão - Button2 - insira o código abaixo que irá excluir um diretório/subdiretório conforme informado na caixa de texto : TextBox1
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If TextBox1.Text <> "" Then
If Directory.Exists(TextBox1.Text) Then
Directory.Delete(TextBox1.Text)
MessageBox.Show("O diretório <<" & TextBox1.Text & ">> foi excluida com sucesso !!", "VB.NET - Criando Diretórios", MessageBoxButtons.OK, MessageBoxIcon.Information)
Else
MessageBox.Show("O diretório <<" & TextBox1.Text & ">> não existe, Verifique !!", "VB.NET - Criando Diretórios", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Else
MessageBox.Show("Informe o caminho e nome do diretorio que deseja Excluir !", "VB.NET - Criando Diretórios", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End Sub
Ao executar o projeto e clicar no botão - Exclui Diretório - teremos o seguinte resultado:-
- Para excluir o diretório usamos o método - Directory.Delete(TextBox1.Text)
- Antes de executar a instrução verificamos se o diretório existe usando o método - Exists - Directory.Exists(TextBox1.Text)
Listando o conteúdo de diretórios e subdiretórios
- No evento click do botão - Button3 - insira o código abaixo que irá listar o conteúdo de um diretório/subdiretório conforme informado na caixa de texto : TextBox1
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button3.Click
Dim nomearq As String
Dim subdir As String
If TextBox1.Text <> "" Then
Dim msg, titulo, valor As String
Dim objValor As Object
msg = "Informe a extensão do arquivo.Exemplo: *.exe "
titulo = "Listar arquivos" ' define o titulo.
valor = "*.exe" ' define o valor padrao
' Exibe mensagem posicionada
objValor = InputBox(msg, titulo, valor, 200, 200)
Me.ListBox1.Items.Clear()
Me.ListBox1.Items.Add(New String(TextBox1.Text))
For Each nomearq In Directory.GetFiles(TextBox1.Text, objValor)
Me.ListBox1.Items.Add(New String(nomearq))
Next
Else
MessageBox.Show("Informe o caminho/nome do diretorio para Listar !", "VB.NET - Criando Diretórios",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End Sub
O conteúdo do diretório informado é exibido em uma caixa de listagem - ListBox . Podemos usar um filtro para exibir arquivos com determinada extensão. Usamos uma InputBox para receber esta informação.
Ao executar o projeto e clicar no botão - Exibe Conteúdo - teremos o resultado a seguir.
- Definimos a função InputBox para permitir ao usuário informa a extensão dos arquivos que deseja listar :
Dim msg, titulo, valor As String
Dim objValor As Object
msg = "Informe a extensão do arquivo.Exemplo: *.exe "
titulo = "Listar arquivos" ' define o titulo.
valor = "*.exe" ' define o valor padrao
' Exibe mensagem posicionada
objValor = InputBox(msg, titulo, valor, 200, 200)
- Usando o método GetFiles para retornar o nome dos arquivos no diretório informado:
For Each nomearq In Directory.GetFiles(TextBox1.Text, objValor)
Me.ListBox1.Items.Add(New String(nomearq))
Next
Exibindo os atributos de um arquivo
Obtemos os atributos do arquivo informado em - TextBox1 - através dos métodos da classe - System.IO.File -
GetCreationTime
GetLastAccessTime
GetLastWriteTime
e da classe - FileVersionInfo - que fornece informações sobre atributos de um arquivo. Algumas das propriedades da classe estão listadas abaixo:
Comments Obtém os comentários associados ao arquivo.
CompanyName Obtém o nome da empresa que criou o arquivo.
FileBuildPart Obtém o número de criação do arquivo.
FileDescription Obtém a descrição do arquivo.
FileVersion obtem o número da versão
InternalName obtém o nome interno do arquivo , se existir.
- No evento click do botão - Button4 - insira o código abaixo que irá exibir os atributos de um arquivo conforme informado na caixa de texto : TextBox1
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim nomearq As String
If TextBox1.Text <> "" Then
If File.Exists(TextBox1.Text) Then
Dim fvi As FileVersionInfo = FileVersionInfo.GetVersionInfo(TextBox1.Text)
Me.ListBox1.Items.Clear()
Me.ListBox1.Items.Add(New String(TextBox1.Text))
Me.ListBox1.Items.Add(New String("Data da criação : " & File.GetCreationTime(TextBox1.Text)))
Me.ListBox1.Items.Add(New String("Último acesso : " & File.GetLastAccessTime(TextBox1.Text)))
Me.ListBox1.Items.Add(New String("Última alteração : " & File.GetLastWriteTime(TextBox1.Text)))
Me.ListBox1.Items.Add(New String("Nome da Empresa : " & fvi.CompanyName))
Me.ListBox1.Items.Add(New String("Versão : " & fvi.FileVersion))
Me.ListBox1.Items.Add(New String("Descrição : " & fvi.FileDescription))
Else
MessageBox.Show("O Arquivo/diretório <<" & TextBox1.Text & ">> não existe, Verifique !!",
"VB.NET - Criando Diretórios", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Else
MessageBox.Show("Informe o caminho e nome do diretorio para exibir atributos !",
"VB.NET - Criando Diretórios", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End Sub
Ao executar o projeto e clicar no botão - Mostrar Conteúdo- teremos o resultado a seguir.
- O resultado é exibido na caixa de listagem - ListBox1.
Me.ListBox1.Items.Add(New String("Data da criação : " & File.GetCreationTime(TextBox1.Text)))
Finalmente o código associado ao evento click do botão - Button5 - que encerra o sistema.
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
If MessageBox.Show("Deseja realmente sair ? ", "Encerrar", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
End
End If
Deu para sentir que o VB.NET possui recursos que nos permitem obter resultados com pouco código. Neste artigo procurei mostrar alguns destes recursos de forma simples para você ir se acostumando...
Até o próximo artigo VB