![]()  | 
    No artigo de hoje vamos recordar como acessar arquivos usando os recursos da linguagem VB .NET. | 
				
				![]()  | 
  
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 :
Então qual o melhor caminho ?
A resposta a essa pergunta vai depender de diversos fatores.
Com o tempo vamos adquirindo experiência e saberemos qual o melhor alternativa usar.
Neste artigo eu vou tratar basicamente da classe Directory do namespace System.IO, mais especificamente dos métodos GetFiles e GetDirectories.
Recursos usados:
MS Access 2007
Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.
Criando o projeto no Visual Studio 2015 Community
Abra o VS 2015 Community e clique em New Project;
Selecione Other Project Types -> Visual Studio Solutions -> Blank Solution;
Informe o nome VBNET_Arquivos e clique no botão OK;
A seguir a partir da ToolBox inclua no formulário form1.vb os seguintes controles :
Disponha os controles conforme o leiaute da figura abaixo:

Defina os seguintes namespaces usados no formulário:
Imports System.IO Imports System.IO.Directory
Agora no evento click do botão - Listar Diretórios - vamos incluir o código abaixo que lista os diretórios conforme as definições dos critérios usando o método GetDirectories da classe Directory.
		Private Sub btnListarDiretorios_Click(sender As Object, e As EventArgs) Handles btnListarDiretorios.Click
        'limpa o listbox
        lbDiretorios.Items.Clear()
        Try
            'define o diretorio raiz
            Dim raiz As String = IIf(txtDiretorioRaiz.Text = String.Empty, "c:\", txtDiretorioRaiz.Text)
            'define o critério para o nome dos diretorios
            Dim criterio As String = IIf(txtCriterioDiretorio.Text = String.Empty, "*", txtCriterioDiretorio.Text)
		            'obtem os diretórios conforme os critérios acima 
            For Each Dir As String In GetDirectories(raiz, criterio, IIf(chkOpcao.Checked, SearchOption.AllDirectories, SearchOption.TopDirectoryOnly))
                lbDiretorios.Items.Add(Dir)
            Next
            'exibe a quantidade de diretórios
            lblDiretorios.Text = lbDiretorios.Items.Count.ToString + " Diretórios encontrados."
            'habilita o botão para listar arquivos
            btnListarArquivos.Enabled = True
        Catch ex As Exception
            MessageBox.Show("Erro " + ex.Message)
        End Try
    End Sub
		 | 
	
O código esta comentado e não necessita mais detalhes. Vale apenas citar a sintaxe do método GetDirectories:
Public Shared Function GetDirectories ( path As String, searchPattern As String ) As String()
Onde :
path 
- Indica o caminho absoluto ou relativo do diretório a procurar. 
searchPattern -  Representa a cadeia de caracteres de pesquisa para 
correspondência com os nomes dos arquivos em path. Esse parâmetro pode conter 
uma combinação de caminho literal válido e o caractere curinga (* e ?) , mas não 
oferece suporte a expressões regulares.
| 
			 * | 
			|
| 
			 | 
			
A seguir inclua no evento Click do botão de comando - Listar Arquivos - o código que lista os arquivos do diretório selecionado usando os métodos GetFiles() da classe Directory e GetFileName() da classe Path.
		 Private Sub btnListarArquivos_Click(sender As Object, e As EventArgs) Handles btnListarArquivos.Click
        'limpa o listbox
        lbArquivos.Items.Clear()
        'verifica se um diretório foi selecionado ou não
        If Not lbDiretorios.SelectedItem = Nothing Then
            Try
                'define o critério para o nome dos arquivos
                Dim criterio As String = IIf(txtCriterioArquivo.Text = String.Empty, "*", txtCriterioArquivo.Text)
                ' obtem os arquivos do diretorio selecioonado conforme o critério
                ' lista apenas os nomes dos arquivos usando uma expressão lambada e o método GetFileName
                Dim arquivos = GetFiles(lbDiretorios.SelectedItem, criterio).Select(Function(arq) Path.GetFileName(arq))
		                'verifica se existem arquivos encontrados
                If arquivos.Count > 0 Then
                    'percorre e exibe os nomes dos arquivos
                    For Each nomeArquivo As String In arquivos
                        lbArquivos.Items.Add(nomeArquivo)
                    Next
                    'exibe a quantidade de arquivos
                    lbArquivos.Text = lbArquivos.Items.Count.ToString + " Arquivos encontrados."
                Else
                    lbArquivos.Items.Add("Nenhum arquivo encontrado")
                End If
            Catch ex As Exception
                MessageBox.Show("Erro " + ex.Message)
            End Try
        Else
            MessageBox.Show("Selecione o diretório desejado.")
        End If
    End Sub
		 | 
	
Neste código vale destacar a expressão lambda usada na linha de código abaixo para obter o nome dos arquivos:
Dim arquivos = GetFiles(lbDiretorios.SelectedItem, criterio).Select(Function(arq) Path.GetFileName(arq))
As expressões lambdas são funções ou sub-rotinas que podem conter expressões e declarações que são usadas para criar delegates e árvores de expressões onde o tipo das variáveis não precisam ser declarados visto que elas usam métodos anônimos.
Desta forma podemos declarar a expressão lambda e chamar a função passando um valor ao parâmetro. Você cria uma expressão lambda usando as palavras reservadas Sub ou Function.
Executando o projeto e definindo algumas opções iremos obter o seguinte resultado:

Deitar-me faz em verdes pastos, guia-me 
mansamente a águas tranqüilas.Refrigera a minha alma; guia-me pelas veredas da 
justiça, por amor do seu nome. 
Salmos 23:2,3
| 
    
    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 ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?  | 
  
  
    Gostou ?  
Compartilhe no Facebook
  
 
Compartilhe no Twitter
  
  
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Basic - Operações com arquivos e diretórios - Macoratti.net