Esse artigo faz parte da revista .NET Magazine edição 53. Clique aqui para ler todos os artigos desta edição

img

Easy .NET

Gerenciamento de Arquivos

Desenvolva uma aplicação completa de gerenciamento de arquivos

 

Neste artigo veremos

·                Conceitos básicos de ASP.NET utilizando o VB.NET;

·                Introdução ao System.IO.File e System.io.Directory;

·                Utilizando o GridView;

·                Utilizando TreeView.

Qual a finalidade

·                Permitir que o usuário tenha uma interface de gerenciamento de arquivos.

Quais situações utilizam esses recursos?

·                Em muitos projetos Web, existe a necessidade do usuário enviar arquivo. Com esta plataforma o usuário pode ter controle total dos arquivos.

 

Resumo do DevMan

Neste artigo construiremos uma aplicação capaz de gerenciar arquivos a partir de páginas Web.

 

Neste artigo veremos conceitos básicos do ASP.NET, voltados principalmente a gerenciamento de arquivos. Vamos desenvolver uma aplicação de gerenciamento de arquivos de ponta a ponta, muito similar ao do windows explorer, voltado para a Web. Você aprenderá como listar os diretórios e arquivos de uma determinada pasta do sistema, e preencher uma TreeView (estrutura hierárquica de dados). Conhecerá também o funcionamento do GridView e como permitir que ele efetue diversas operações. Por fim, conheceremos como criar uma pasta e enviar um arquivo. Embora este artigo não seja totalmente com programação orientada a objeto, vamos criar um objeto bem simples, para que você possa ter um primeiro contato, caso ainda não tenha tido.

 

Mãos à obra

Abra o Visual Studio, selecione a opção do menu “Arquivo” (File caso seu VS seja em inglês) novo website. Uma janela de diálogo aparecerá. Selecione a opção ASP.NET Web Site, Informe a pasta “GerenciadorArquivo”, selecione o framework 2.0 com a linguagem Visual Basic, conforme Figura 1.

Depois de confirmado, será criado um projeto com alguns arquivos e pastas padrão de todo projeto. Se você pressionar a tecla F5, ou clicar no ícone de play, o projeto será rodado pela primeira vez. Uma página em branco abrirá no seu navegador, através de um servidor web pelo próprio Visual Studio. Caso esta operação se confirme, significa que está tudo pronto para você começar a programar.

 

img

Figura 1. Criando um novo projeto tipo Website

 

Criando a Classe

Vamos criar uma classe que representará os itens, que pode ser pasta ou arquivos. Para tanto, crie uma pasta na raiz chamada App_code. Esta pasta pode ser criada clicando com o botão direito em cima do projeto. Aparecerá então a opção Add ASP.NET Folder, ou adicionar uma pasta do ASP.NET, conforme Figura 2. Esta opção relaciona todas as pastas padrões do ASP.NET.

 

img

Figura 2. Adicione a pasta App_code ao seu projeto ASP.NET

 

Quando criamos classes não relacionadas a nenhuma página (códigos relacionados diretamente à página serão melhor explicado mais adiante), elas devem ficar na pasta App_code.

Clique com o botão direito em cima da pasta criada, App_code, e selecione a opção add new item, ou adicionar novo item. Vamos adicionar um arquivo de extensão .VB chamado item.vb, conforme Figura 3. Na nossa aplicação os itens poderão ser arquivos ou pastas, como veremos em seguida.

 

img

Figura 3. Adicione a classe item.vb na pasta App_code

 

Nota do DevMan

O ASP.NET 2.0 introduziu o conceito de pastas especiais, que levam nomes pré-definidos, que ficam abaixo do diretório do seu Web Site. Estas pastas são:

- App_Data: criada por padrão, serve para armazenar arquivos de dados como bancos de dados locais (SQL Server, ou mesmo XML);

- App_Code: usada para armazenar classes que não estejam vinculadas à páginas, como classes de negócio ou classes que contém métodos utilitários;

- App_GlobalResources: todas as páginas, user controls etc. podem usar recursos compartilhados armazenados de forma global;

- App_LocalResources: semelhante à pasta acima, válida a nível de página;

- App_Browsers: utilizada pelo ASP.NET para identificar diferentes tipos de browsers e suas capacidades;

- App_Themes: utilizada para armazenar temas&skins ou arquivos CSS em uma aplicação que usa o novo recurso de temas.

 

Observe a Listagem 1, o Arquivo item.vb terá uma enumeração chamada “tipo” (linha 05 da Listagem 1). Enumeração é um tipo de variável que vincula um valor constante numérico a um nome (string). Como exemplo, podemos dizer que se assemelha muito a uma lista. Neste exemplo temos 3 tipos, “indefinido” = 0, “pasta” = 1 e “arquivo” = 2. As propriedades da classe são as informações pertinentes a ela. Se imaginarmos criarmos uma classe de uma pessoa, esta pessoa terá, por exemplo, as propriedades; CorOlhos, Altura, Nome, DataNascimento, CorCabelo etc. Cada pessoa tem combinações únicas destas propriedades, o que torna cada pessoa única.

No nosso caso, dos itens, a mesma regra se aplica. Cada item tem valores únicos para cada propriedade. Veja Tabela 1, ela nos informa todas as propriedades a serem criadas pela classe. A sintaxe de criação das propriedades pode ser obtida através de um atalho no Visual studio. Digite property e logo em seguida pressione a tecla tab. Automaticamente será criada toda a estrutura da sintaxe da propriedade, com campos verdes. Estes campos verdes são os campos que você deverá informar, correspondem ao tipo e ao nome da propriedade.

 

Propriedade

Tipo

Descrição

Nome

String

Recebe o nome do item, por exemplo: "arquivo.doc"

CaminhoFisico

String

Recebe o caminho físico do item, por exemplo: "(c:/..)"

TipoItem

Tipo

Recebe o tipo do item, conforme enumeração (Arquivo/Pasta)

Extensao

String

Recebe a extensão do arquivo

TamanhoKB

Integer

Recebe o Tamanho, em KB.

DataCriacao

DateTime

Recebe a data em que o item foi criado fisicamente

SomenteLeitura

Boolean

Recebe se o item é somente leitura. Caso seja True, o item é somente leitura.

Ícone

String

Recebe o ícone a ser exibido junto ao nome.

Tabela 1. Propriedades da classe item.vb

 

Listagem 1. Código da classe item.vb

 

1 Imports Microsoft.VisualBasic

2

3 Public Class Item

4

5    Public Enum Tipo

6        [Indefinido] = 0

7        [Pasta] = 1

8        [Arquivo] = 2

9    End Enum

10

11 #Region "Propriedades"

12

 13   '''

 14   ''' Recebe o nome do arquivo

 15   '''

 16   Private m_sNome As String

 17   Public Property Nome() As String

 18       Get

 19           Return m_sNome

 20       End Get

 21       Set(ByVal value As String)

 22           m_sNome = value

 23       End Set

 24   End Property

 25

 26   '''

 27   ''' Recebe o camihho físico do item

 28   '''

 29   Private m_cCaminhoFisico As String

 30   Public Property CaminhoFisico() As String

 31       Get

 32           Return m_cCaminhoFisico

 33       End Get

 34       Set(ByVal value As String)

 35           m_cCaminhoFisico = value

 36       End Set

 37   End Property

 38

 39   '''

 40   ''' Tipo do item

 41   ''' pode ser pasta ou arquivo

 42   '''

 43   Private m_eTipoItem As Tipo

 44   Public Property TipoItem() As Tipo

 45       Get

 46           Return m_eTipoItem

 47       End Get

 48       Set(ByVal value As Tipo)

...

Quer ler esse conteúdo completo? Tenha acesso completo