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
Olá Pessoal.
Estaremos dando início hoje a mais uma seqüência de tutorias. Desta vez iremos aprender algumas maneiras de trabalhar com arquivos e diretórios onde um possível WebSite esteja hospedado.
O Namespace System.IO implementa diversas classes, onde de forma simples, conseguimos executar procedimentos costumeiros de um sistema operacional. Nesta seqüência iremos abordar algumas destas diversas classes.
Abra um novo projeto e dê a ele o nome de Diretorios_Arquivos. Utilizaremos a linguagem VB.Net, mas poderá ser feitos em C# ou J# tranquilamente.
O nosso primeiro desafio será listar os subdiretórios do diretório raiz do site, no caso o wwwroot.
Apague o arquivo WebForm1.aspx e crie um novo chamado ListagemDeDiretorios.aspx
Abra o arquivo criado acima, e insira um controle do tipo DataGrid com o nome dgDiretorios. Fique à vontade para formatá-lo.
Iremos popular este DataGrid com os nomes e outros atributos dos subdiretórios que iremos listar. Qualquer outro objeto que suporte o DataBindings pode ser usado, exemplo o ListBox ou o DataList.
Optei pelo DataGrid porque ele têm por característica a possibilidade de gerar as colunas automaticamente. Assim, logo se precisar mostrar apenas um dos atributos dos diretórios listados, já saberei qual nome referenciar.
Já podemos agora desenvolver o código para listar os subdiretórios. Clique no botão View Code e digite o seguinte trecho de código:
Private Sub ListarDiretorios()
Dim dir As New DirectoryInfo("C:\Inetpub\wwwroot")
dgDiretorios.DataSource = Dir.GetDirectories()
dgDiretorios.DataBind()
End Sub
Chame esta rotina no Page_load:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ListarDiretorios()
End Sub
Vamos conferir o resultado:
Vejam que o DataGrid exibe informações detalhadas sobre cada diretório listado.
Bem, agora que já sabemos o nome dos atributos que podemos referenciar, vamos ao seguinte desafio:
“Temos um ListBox populado com todos os Subdiretórios da pasta wwwroot. Ao lado temos um TexBox com um botão chamado CriarDiretório e mais um Label para emitir a mensagem de confirmação do comando. Acho que deu para imaginar a interface, certo? Crie um novo WebForm chamado CriandoDiretorios.aspx e acompanhe a imagem abaixo:
Para acompanhar esta aplicação você deve inserir os seguintes WebControls:
ListBox – ID=lstDiretorios.
Label – ID=lblResposta.
TextBox – ID=txtNome
Button – ID=btnCriar – Text=Criar Diretório.
O código deverá popular a lista de subdiretórios inicialmente, digite o código a seguir:
Private Sub PopularSubDiretorios()
Dim dir As New DirectoryInfo("C:\Inetpub\wwwroot")
lstDiretorios.DataTextField = "Name"
lstDiretorios.DataSource = dir.GetDirectories()
lstDiretorios.DataBind()
End Sub
Chame este procedimento no Page_load da seguinte forma:
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
O próximo passo é criar o código para a criação do diretório, e neste trecho de código algumas validações deveram ser feitas para que não gere possíveis erros. Digite o código a seguir:
Private Sub CriarSubDiretorio()
'Verificando se algum subdiretório foi selecionado.
If lstDiretorios.SelectedIndex < 0 Then
lblResposta.Text = "Nenhum Subdiretório foi selecionado!"
Else
'Verificando se o nome do novo diretório foi digitado
If txtNome.Text = String.Empty Then
lblResposta.Text = "Nenhum nome para o novo diretório foi digitado!"
Else
'Após todas as verificações, o diretório é criado
Dim dir As New DirectoryInfo("C:\Inetpub\wwwroot")
'O método CreateSubdirectory é quem cria o novo subdiretório
dir.CreateSubdirectory(lstDiretorios.SelectedItem.Text & "/" & txtNome.Text)
lblResposta.Text = "O novo diretório foi criado!"
txtNome.Text = String.Empty
End If
End If
End Sub
Comentando um pouco sobre o código acima...
Após todas as validações serem feitas, usamos o método CreateSubdirectory para criar o subdiretório. Como argumento, passamos o nome do subdiretório que irá armazenar o novo diretório mais o nome do novo diretório.
Vejam que com poucas linhas de código, criamos uma aplicação extremamente útil e que em qualquer outro ambiente de programação para a Web levaria um boa carga de código de tempo de desenvolvimento.
Isto prova mais uma vez, que a grande aposta da Microsoft na arquitetura .Net está voltada para a produção e segurança.
Só para garantir, vamos testar:
Teste sem selecionar o Subdiretório
Teste sem digitar o nome do novo diretório
Digitando o nome....
Diretório criado com sucesso...
Veja ele aí....
Valeu pessoal,
Na próxima tem muito mais...
Lano de Castro
lanodecastro@hotmail.com