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.
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.
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.
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)
...