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: PrincipalArtigosNet : Arquivosediretorios002
Quer receber novidades e e-books gratuitos?

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

1 Visão geral do .NET Framework e do CLR
1 Comunicação .NET e VB 6.0 (com Visual Studio.NET 2005) - Parte I
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 1
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 2
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 3
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 4
1 Desenvolvendo aplicações Windows utilizando o VB.NET e o C# - Parte 5
1 VB: Menu Principal, Menu PopUp e Arquivos Texto
Visual Studio
1 ASP.NET 2.0 - Conhecendo o ObjectDataSource Control
1 Visual Web Developer - 2005 - Beta 2 - Introdução
1 ASP.NET 2.0 - Conhecendo o GridView
1 ASP.NET 2.0 - Utilizando o GridView e DetailsView
1 ASP.NET 2.0 - Conhecendo o ObjectDataSource Control - Parte 2
1 ASP.NET 2.0 - Utilizando o XmlDataSource
1 Envio de e-mail através de formulário web
1 ADO.NET 2.0 - Conhecendo as novidades parte 1
1 Série Visual Source Safe - Parte 1
1 Série Visual Source Safe - Parte 3
1 URL Indexável – Reescrever URL de uma forma amigável
1 Permissão de Página Utilizando Web.Config
1 Usando public interface
1 Trabalhando com o componente TabContainer
1 Adicionando Menu no DataGridView
ASP.NET
1 Conhecendo o ambiente integrado do WebMatrix
1 Desenvolvendo aplicações ASP.NET no WebMatrix - WebControls – Parte I
1 Desenvolvendo aplicações ASP.NET no WebMatrix - WebControls – Parte II
1 Desenvolvendo aplicações ASP.NET no WebMatrix - WebControls – Parte III
1 Acessando um banco de dados facilmente com ADO.Net e Datagrid
1 Desvendando os segredos do Dataset- Parte I
1 Construindo um Sistema de Publicação de Notícias – Parte 1
1 Construindo um Sistema de Publicação de Notícias – Parte 2
1 Construindo um Sistema de Publicação de Notícias – Parte 3
1 Construindo um Sistema de Publicação de Notícias – Parte 4
1 Construindo um Sistema de Publicação de Notícias – Parte 5
1 Login com Perfil de Acesso
1 Guest Book com XML - Parte 1
1 Guest Book com XML - Parte 2
1 Agendando Datas no Calendário com XML
1 Filtrando e Organizando Dados com o Controle DataView
1 Lista de Dados com Subitens – Parte 1
1 Lista de Dados com Subitens – Parte 2
1 Trabalhando com Arquivos e Diretórios – Parte 1
1 Trabalhando com Arquivos e Diretórios – Parte 2
1 Trabalhando com Arquivos e Diretórios – Parte 3
1 Sistema de Enquetes baseado em WebServices – Parte 1
1 Sistema de Enquetes baseado em WebServices – Parte 2
1 Sistema de Enquetes baseado em WebServices – Parte 3
1 Upload de Arquivos
1 Crie seu próprio código de verificação
1 Login e Senha com FormsAuthentication – Parte 1
1 Login e Senha com FormsAuthentication – Parte 2
1 Sistema de Enquetes baseado em WebServices – Parte 4
1 Sistema de Enquetes baseado em WebServices – Parte 5
1 Sistema de Enquetes baseado em WebServices – Parte 6