Manipulando arquivos

 

Ola pessoal, estarei mostrando nesse tutorial como manipular arquivos textos, com um exemplo bem funcional na qual muitas vezes necessitamos.

 

Começaremos com a criação de um novo WebSite (dê o nome que quiser), em seguida adicione um nova pasta ao seu WebSite chamada (Arquivos).

 

manarqfig01.JPG

 

Adicione os seguintes controles a página Default.aspx

 

Label:            Name: lbl_Mensagem         

Label:            Name: lbl_Arquivos

FileUpload:       Name: fu_Upload

Listbox:          Name: lb_Arquivos

Button:           Name: btn_Adicionar          Text: Adicionar

Button:           Name: btn_Remover            Text: Remover

Button:           Name: btn_Ler                Text: Ler Arquivo

Button:           Name: btn_Atualizar          Text: Atualizar    

     

manarqfig02.JPG

 

Vamos à codificação

 

Importe o namespace:

using System.IO;

 

O listbox deverá carregar os arquivos do diretório Arquivos, veja o código abaixo.

 

protected void Page_Load(object sender, EventArgs e)

    {

        if (!Page.IsPostBack)

        {

    DirectoryInfo diretorio = new DirectoryInfo(Server.MapPath("Arquivos/"));

            lb_Arquivos.DataSource = diretorio.GetFiles();

            lb_Arquivos.DataBind();

        }

    }

 

DirectoryInfo: Obtém informações do diretório Arquivos, em seguinda definimos o DataSource do nosso ListBox com o metodo GetFiles, na qual resgata os arquivos do diretório.

 

Codificação do Botão: Adicionar

protected void btn_Adicionar_Click(object sender, EventArgs e)

    {

        if (Page.IsPostBack)

         {

        if (FlUpload.HasFile)

        {

 

              FlUpload.SaveAs("Arquivos");

            lblMensagem.Text = "Salvo com Sucesso";

        }

        else

        {

            lbl_Mensagem.Text = "Houve um erro";

 

         }

        }

    }

  

Verificamos o postback da página,  o método HasFile verifica se foi selecionado algum arquivo, em seguinda salvamos o arquivo na pasta Arquivos e retornamos a mensagem de sucesso ou em caso de erro retornamos um erro.

 

Codificação do Botão: Remover

protected void btn_Remover_Click(object sender, EventArgs e)

    {

            FileInfo info;

            string arquivo;

            arquivo = Server.MapPath("Arquivos") + "\\"  

                      lb_Arquivos.SelectedItem.Text;

            info = new FileInfo(arquivo);

            info.Delete();

            lblMensagem.Text = "Arquivo Removido";

           

        }

 

O objeto FileInfo não possui métodos estáticos, sendo assim apenas instanciamos e passamos um valor string que usaremos para definir o caminho dos arquivos, sendo assim atribuimos o caminho dos arquivos junto com o arquivo selecionado no LisBox. O método “Delete”,  deleta o arquivo selecionado.

 

Codificaçao do Botão: Ler Arquivo

 

Adicione um controle textbox a página e dê o nome de txtLerArquivo.

 

protected void btn_Ler_Click(object sender, EventArgs e)

    {

        FileInfo info;

        string arquivo;

       arquivo = Server.MapPath("Arquivos") + "\\" +

                 lb_Arquivos.SelectedItem.Text;

       info = new FileInfo(arquivo);

       StreamReader reader = new StreamReader(arquivo);

       txtLerArquivo.Text = reader.ReadToEnd();

                            lbl_Arquivo.Text = info.Name;

       reader.Close();

       reader.Dispose();

 

    }

 

Novamente instanciamos o objeto FileInfo com o caminho do nosso diretório mais o nome do arquivo selecionado. O objeto StreamReader lê os dados de um determinado arquivo, passamos então o nome do arquivo e definimos o textbox com o arquivo selecionado,  o método ReadToEnd consegue ler os arquivo, além deste há outros outros que você pode usar: (Readline, Read, entre outros). Com a propriedade Name  obtemos no label o nome do arquivo

 

Codificação do Botão Atualizar

Para o botão atualizar

 

protected void btn_Atualizar_Click(object sender, EventArgs e)

    {

string arquivo;

        arquivo = Server.MapPath("Arquivos") + "\\" +  lbl_Arquivo.Text;

        StreamWriter atualiza = new StreamWriter(arquivo);

       atualiza.Write(txtLerArquivo.Text);  

       atualiza.Close();

        atualiza.Dispose();

    }

 

Instanciamos a classe StreamWriter passando o caminho do arquivo e o nome dele, O objeto StreamWriter possue o método WRITE na qual podemos escrever no arquivo selecionado. Não se esqueça de sempre fechar os objetos.

Experimente agora implementar rotinas de tratamento de erros.

 

Resultado Final

 

manarqfig03.JPG

 

Dê permissão de Escrita a sua pasta caso contrário podera ocorrer erros.

 

Vemos nesse artigo o quanto a classe System.IO tem a nos oferecer à facilidade de implementação. Explore essa classe que você verá que seus métodos atendem bem a necessidade do nosso dia a dia.

 

É isso ai pessoal.. até a próxima.