NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalTutoriaisLanodecastro : Arquivosediretorios002
Quer receber novidades e e-books gratuitos?

FILTRO DE TUTORIAIS:


Trabalhando com Arquivos e Diretórios – Parte II

 

Olá Pessoal,

 

Continuando nosso aprendizado, vamos tratar hoje de mais algumas formas de lhe dar com arquivos dentro do servidor usando a plataforma .Net

 

Na primeira parte deste tutorial, falamos a respeito dos diretórios, aprendemos a listar Subdiretórios e criar novos Subdiretórios.

 

Hoje, nosso trabalho estará voltado para os arquivos, mas juntamente com os diretórios, é claro, pois, os arquivos estão dependentes destes.

 

Iniciamos da seguinte forma: utilizando o mesmo projeto anterior, você vai criar um novo arquivo chamado ListagemDeArquivos.aspx.

 

 

Neste arquivo, vamos popular um ListBox com os Subdiretórios da pasta wwwroot, e vamos popular um DataGrid com os arquivos do Subdiretório selecionado. Então insira os seguintes WebControls:

 

» DataGrid: dgArquivos

 

» ListBox: lstDiretorios

 

Você pode formatar o DataGrid da maneira que achar melhor:

 

 

Bem, o código para popular os diretórios já está pronto, lembra? Utilizamos ele no tutorial anterior, então, basta colar neste arquivo. Vou listar novamente o código abaixo:

 

Private Sub PopularSubDiretorios()

        Dim dir As New DirectoryInfo("C:\Inetpub\wwwroot")

        lstDiretorios.DataTextField = "Name"

        lstDiretorios.DataValueField = "FullName"

        lstDiretorios.DataSource = dir.GetDirectories()

        lstDiretorios.DataBind()

    End Sub

 

Esta rotina deve ser chamada no Page_load:

 

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        If Not Page.IsPostBack Then

            PopularSubDiretorios()

        End If

    End Sub

 

Pronto! Parte do nosso projeto já foi solucionado. Agora, precisamos obter os arquivos do Subdiretório selecionado.

 

O código que faz esta tarefa se parece muito com o código para a listagem de Subdiretórios, veja:

 

Private Sub ListarArquivos(ByVal Diretorio As String)

 

        Dim dir As New DirectoryInfo(Diretorio)

        dgArquivos.DataKeyField = "FullName"

        dgArquivos.DataSource = dir.GetFiles()

        dgArquivos.DataBind()

    End Sub

 

Esta rotina deve ser chamada no evento SelectedIndexChanged do lstDiretorios, e para que este evento funcione, devemos acionar a propriedade AutoPostBack do lstDiretorios, marcando True para seu valor:

 

 

Veja o código para acionar esta rotina:

 

Private Sub lstDiretorios_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstDiretorios.SelectedIndexChanged

        If lstDiretorios.SelectedIndex > -1 Then

            ListarArquivos(lstDiretorios.SelectedItem.Value)

        End If

    End Sub

 

Usamos o trecho

 

        If lstDiretorios.SelectedIndex > -1 Then

 

Para garantir que só o DataGrid só vai ser populado caso o ListBox possua uma opção selecionada.

 

Vamos ao teste:

 

 

Mostrando somente os diretórios, sem selecionar...

 

 

Mostrando os arquivos do diretório selecionado....

 

É possível também filtrar os arquivos mostrados através de sua extensão.

 

Basta aplicar um parâmetro no método getFiles(), veja o código:

 

Private Sub ListarArquivos(ByVal Diretorio As String)

        Dim dir As New DirectoryInfo(Diretorio)

        dgArquivos.DataKeyField = "FullName"

        'Exibirá apenas os arquivos de extensão ASPX

        dgArquivos.DataSource = dir.GetFiles("*.aspx")

        dgArquivos.DataBind()

    End Sub

 

Testando o código acima:

 

 

Vejam que ele está listando somente a extensão aspx.

 

Agora para terminar, vamos incluir uma nova coluna no DataGrid que servirá para excluir um determinado arquivo.

 

Selecione o DataGrid, clique em PropertyBuilder, vá em Columns e inclua uma nova coluna do tipo Select

 

 

Configure de acordo com a imagem abaixo:

 

 

Clique em Ok, e vamos ao código para executar esta exclusão.

 

Private Sub ExcluirArquivo(ByVal arquivo As String)

        'Cria o objeto FileInfo, passando o nome do arquivo como argumento

        Dim fli As New FileInfo(arquivo)

        'Executa o método delete que apaga o arquivo

        fli.Delete()

        'Carrega novamente a lista de arquivos, só que atualizada

 

        ListarArquivos(lstDiretorios.SelectedItem.Value)

 

    End Sub

 

Este método deve ser chamado no SelectedIndexChange do DataGrid, passando sua chave-primária como parâmetro. Esta chave primária foi definida no método ListarArquivos através do seguinte trecho de código:

 

dgArquivos.DataKeyField = "FullName"

 

Para chamar o método passando a chave-primária, utilize o código abaixo:

 

Private Sub dgArquivos_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dgArquivos.SelectedIndexChanged

        ExcluirArquivo(dgArquivos.DataKeys(dgArquivos.SelectedIndex))

    End Sub

 

Faça o teste, mas não vá excluir arquivos importantes...

 

Aqui encerramos mais uma parte deste tutorial. Na próxima mostrarei como montar sua galeria de imagens com Upload e tudo mais

 

Abraços,

 

Lano de Castro

 

Quer receber novidades e e-books gratuitos?

 
 

Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

Todos os direitos reservados, Júlio Battisti 2001-2025 ®

LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO

DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI