Desenvolvimento - Visual Basic .NET

DataGrid e DataList, Arquivos e Imagens

Muitas vezes em nossos sistemas de internet, precisamos exibir uma listagem os arquivos que estão no disco do servidor para o Usuário, seja para uma simples conferência ou até mesmo para edição do mesmos (quando possível)...

por Israel Aéce



Muitas vezes em nossos sistemas de internet, precisamos exibir uma listagem os arquivos que estão no disco do servidor para o Usuário, seja para uma simples conferência ou até mesmo para edição do mesmos (quando possível).

Há outras ocasiões onde esses arquivos são Imagens, onde devem ser exibidas amigavelmente para o Usuário. Neste caso, não basta exibir o seu nome, ou suas características, mas sim a Imagem propriamente dita.

O .NET Framework nos fornece diversas classes para acesso à arquivos e diretórios. Todas contidas dentro do Namespace System.IO. Neste artigo veremos sobre a classe DirectoryInfo e sobre o método GetFiles().

A Classe DirectoryInfo

Com a Classe DirectoryInfo temos acesso as informações de um determinado diretório, incluindo seu Nome, Path, etc., passando em seu construtor um parâmetro que identifica o caminho do diretório a ser retornardo seus respectivos arquivos. Com isso, temos acesso ao método GetFiles(), qual retorna uma lista contendo os de arquivos do diretório em questão. Neste mesmo método, temos um Overload, que recebe como parâmetro um "SearchPattern", ou seja, uma String que você informa a extensão dos arquivos a serem retornados.

Exibindo Arquivos TXT de um Diretório (DataGrid)

Como vimos um pouco acima, em determinados momentos precisamos exibir uma listagem dos arquivos de um determinado diretório para o Usuário. Com isso, utilizaremos o controle DataGrid para a exibição destes arquivos.

Sabendo-se que o método GetFiles() retorna uma lista dos arquivos do diretório, a idéia é criarmos as BoundColumns com as propriedades do arquivo, como: Name, FullName (Path), e LastWriteTime (Data da Última Modificação). Arraste um controle DataGrid na tela, e clique com botão direito em cima do mesmo, vá até Property Builder e em seguinda clique em Columns. Você deverá adicionar três BoundColumns, informando o Nome, Caminho e Data da Última Modificação do Arquivo. A figura abaixo ilustra o processo:


As Propridades devem ficar conforme a tabela abaixo:


Feito isso, seu DataGrid deverá ficar como a imagem abaixo:


Agora nos resta fazer a codificação para que o método GetFiles() popule o DataGrid. Temos agora que utilizar o evento Page_Load do WebForm, para populá-lo. O código ficará da seguinte forma:


Como vemos, o método GetFiles recebe como parâmetro a string contendo a extensão do arquivo que desejamos recuperar do diretório, ou seja, serão retornados apenas arquivos com extensão "*.txt". Ao rodar a aplicação o resultado deverá ser:



Exibindo Imagens (DataList)

Neste caso, temos que exibir as imagens de um diretório no DataList. Não muda muito com relação ao exemplo anterior com TXT. A única diferença significativa é a mudança do controle de DataGrid para DataList.

Crie um novo WebForm contendo um controle DataList. Clique com o botão direito em cima do mesmo, e vá até a opção Property Builder. Defina a propriedade Columns como 3 e a propriedade Direction como Vertical, conforme a figura abaixo:



Da mesma forma que fizemos para resgatar os arquivos *.txt no exemplo anterior, faremos aqui também, apenas mudando o SearchPattern para "*.jpg", conforme o código abaixo:


Como estamos utilizando o DataList, precisamos apenas definir onde os campos irão ser colocados no HTML. Para isso, localize a seção ItemTemplate e AlternatingItemTemplate do DataList e defina:


Ao compilar, se nenhuma falha ocorrer, o resultado deverá ser conforme a figura abaixo:


CONCLUSÃO: Vimos neste artigo o quanto é fácil manipularmos Diretórios e seus Arquivos com o Namespace System.IO e também a flexibilidade que as classes nos fornecem, permitindo o acesso rápido as suas propriedades e atribuindo essas listagens de arquivos e/ou diretórios aos controles, facilitando a vida do desenvolvedor.

Israel Aéce

Israel Aéce - Especialista em tecnologias de desenvolvimento Microsoft, atua como desenvolvedor de aplicações para o mercado financeiro utilizando a plataforma .NET. Como instrutor Microsoft, leciona sobre o desenvolvimento de aplicações .NET. É palestrante em diversos eventos Microsoft no Brasil e autor de diversos artigos que podem ser lidos a partir de seu site http://www.israelaece.com/. Possui as seguintes credenciais: MVP (Connected System Developer), MCP, MCAD, MCTS (Web, Windows, Distributed, ASP.NET 3.5, ADO.NET 3.5, Windows Forms 3.5 e WCF), MCPD (Web, Windows, Enterprise, ASP.NET 3.5 e Windows 3.5) e MCT.