VB.NET - Operações básicas com arquivos
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 :
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 :
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 :
Por tabela você também aprende com usar MessageBox e InputBox no VB.NET. Vamos lá...
- 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 :
|
||
-
Usando o método GetFiles para retornar
o nome dos arquivos no diretório informado:
|
Exibindo os atributos de um arquivo
Obtemos os atributos do arquivo informado em - TextBox1 - através dos métodos da classe - System.IO.File -
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.NET...
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#