Desenvolvimento - ASP. NET

ASP.NET: Trabalhando com Arquivos

Frequentemente necessitamos trabalhar com arquivos, sejam eles "*.txt", "*.xml", ".csv", etc. Nesse artigo mostrarei como fazemos para criar, excluir, ler arquivos e diretórios a partir de uma Aplicação Web (ASP.NET).

por Israel Aéce



Frequentemente necessitamos trabalhar com arquivos, sejam eles "*.txt", "*.xml", ".csv", etc. Nesse artigo mostrarei como fazemos para criar, excluir, ler arquivos e diretórios a partir de uma Aplicação Web (ASP.NET).

Separarei por tópicos, onde cada um abordará sobre um assunto. Começaremos pelo Diretórios:

Criando um Diretório
1
2
Dim dir As System.IO.Directory
dir.CreateDirectory("C:\Artigos Linha de Codigo")

Código 1 - Criando um Diretório.

Basta criarmos uma variável do tipo System.IO.Directory e executar a função CreateDirectory passando o caminho e nome do diretório a ser criado.

Excluindo um Diretório

1
2
3
4
Dim dir As System.IO.Directory
If dir.Exists("C:\Artigos Linha de Codigo") Then
dir.Delete("C:\Artigos Linha de Codigo")
End If

Código 2 - Excluindo um Diretório.

É sempre boa prática antes de chamarmos a Sub Delete verificarmos se o diretório existe ou não. Para isso utilize a Function Exists do objeto Directory, que retornará um valor boleano indicando se existe ou não o diretório especificado.

Listando Arquivos e SubDiretórios

1
2
3
4
5
6
7
8
9
10
11
Dim dir As New System.IO.DirectoryInfo("C:\Artigos Linha de Codigo")
Dim subdir As System.IO.DirectoryInfo
Dim arq As System.IO.FileInfo
For Each subdir In dir.GetDirectories
Response.Write(subdir.Name & "<br>")
Next
For Each arq In dir.GetFiles("*.*")
Response.Write(arq.Name & "<br>")
Next

Código 3 - Listando Arquivos e SubDiretórios.

No Código 3 chamo a atenção para a Linha 9. Como o método GetFiles é sobrecarregado, podemos especificar qual o tipo de arquivos queremos listar. No exemplo acima, optei por mostrar todos os arquivos. Se quisessemos exibir apenas arquivos "*.txt", poderíamos fazer: GetFiles("*.txt*").

Vamos agora as operações que podemos realizar com os arquivos.

Criando um Arquivo

1
2
Dim arq As New System.IO.FileInfo("C:\Artigos Linha de Codigo\NovoArquivo.txt")
arq.Create()

Código 4 - Criando um arquivo.



Escrevendo em um Arquivo
1
2
3
4
5
6
Dim strTexto As String = "Israel Aéce." & System.Environment.NewLine
strTexto =& "Email: israel@projetando.net"
Dim stream As New System.IO.StreamWriter("C:\Artigos Linha de Codigo\NovoArquivo.txt")
stream.WriteLine(strTexto)
stream.Close()

Código 5 - Escrevendo em um arquivo.

Na instância do StreamWriter já informamos o caminho e o nome do arquivo que deverá ser escrito. Depois chamamos o método WriteLine e passamos a variável "strTexto" para que que ela seja escrita no arquivo.

Excluindo um Arquivo

1
2
3
4
Dim arq As New System.IO.FileInfo("C:\Artigos Linha de Codigo\NovoArquivo.txt")
If arq.Exists Then
arq.Delete()
End If

Código 6 - Excluindo um arquivo.

Aqui fazemos da mesma forma qual fizemos para os Diretórios, ou seja, antes de excluirmos verificamos se o arquivo existe. Caso positivo, chamamos o método Delete().

Lendo Arquivos

1
2
3
Dim reader As New StreamReader("C:\Artigos Linha de Codigo\NovoArquivo.txt")
Response.Write(reader.ReadToEnd)
reader.Close()

Código 7 - Lendo Arquivos.

Utilizando o método ReadToEnd da classe StreamReader não precisamos fazer um loop para percorrer todo o arquivo.

Bem, é importante lembrar que nesse artigo quero apenas dar exemplos de "como fazer para...". É extremamente importante utilizarmos os tratamentos de erros (Try...Catch...Finally) para executar as rotinas acima, pois não sabemos se os arquivos e/ou diretórios existem ou não, se temos permissão para executar, etc.

CONCLUSÃO:
A Plataforma .NET nos trouxe uma grande facilidade na manipulação de arquivos. Sejam eles "*.txt", "*.xml", etc. Além de prático, as classes como StremReader e StremWriter fornece aos desenvolvedores grandes recursos em poucas linhas de código. E para quem está "encantado" com a facilidade, espere até conhecer as "My" do Visual Studio .NET Whidbey (http://download.microsoft.com/download/c/7/f/c7f7a575-79ac-4399-9535-3ed57bc292f2/mynamespace.doc).

Artigo desenvolvido utilizando:

* Visual Studio .NET 2002
* .NET Framework 1.0
* Windows XP Professional
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.