Trabalhando com Arquivos em C# - Parte 1 - C# Brasil


Trabalhando com Arquivos em C# – Parte 1

Olá pessoal, nesta série de três artigos mostrarei como manipular arquivos texto em C# usando Windows Forms. Este exemplo simples serve também para outros tipos de arquivos.

Vamos criar, abrir, concatenar, alterar e excluir arquivos texto, além de usar caixas de diálogo para trabalhar com eles.

Faço este artigo com base nas videoaulas de Bruno Belizário, do Portal Linha de Código, mediante autorização do mesmo. Acompanhem o passo-a-passo:

Para estes artigos iremos usar as classes FileStream, StreamReader e StreamWriter, todas contidas no namespace System.IO, que é específico para manipular arquivos.

Crie uma aplicação Windows Forms com o nome ManipulandoArquivosTexto.

No formulário que aparece, insira cinco botões e altere os nomes para que fique desta forma, como mostra a Figura 01:

Figura 01 – Tela do Formulário

Nomeei o ID dos botões nesta ordem: btnCriar, btnAbrir, btnConcatenar, btnAlterar e btnExcluir.

Devemos definir a pasta em que serão feitas as alterações em nosso arquivo texto. Neste exemplo, será definido a pasta C:\temp. Definido isto, vá à página de códigos para começarmos a criar os métodos dos respectivos botões. Comece declarando o namespace System.IO.



using System.IO;


Agora crie a propriedade privada que será referente à pasta que definimos anteriormente, onde ficará nosso arquivo que irá sofrer as alterações. Assim não temos que nos preocupar em declarar o caminho físico do arquivo toda vez em que formos usá-lo.



private string strPathFile = @"C:\temp\ArquivoExemplo.txt";


Perceba que já criamos o nome do arquivo e a respectiva extensão.

Vamos criar agora o método referente ao botão Criar Arquivo. Segue abaixo o método comentado:



private void Criar()

{

try

{

//Usarei a cláusula using como boas práticas de programação em todos os métodos

//Instancio a classe FileStream, uso a classe File e o método Create para criar o

//arquivo passando como parâmetro a variável strPathFile, que contém o arquivo

using (FileStream fs = File.Create(strPathFile))

{

//Crio outro using, dentro dele instancio o StreamWriter (classe para gravar os dados)

//que recebe como parâmetro a variável fs, referente ao FileStream criado anteriormente

using (StreamWriter sw = new StreamWriter(fs))

{

//Uso o método Write para escrever algo em nosso arquivo texto

sw.Write("Texto adicionado ao exemplo!");

}

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

//Se tudo ocorrer bem, exibo a mensagem ao usuário.

MessageBox.Show("Arquivo criado com sucesso!!!");

}


Agora dê dois cliques no botão Criar Arquivo e chame o método acima no evento do botão:



private void btnCriar_Click(object sender, EventArgs e)

{

Criar();

}


Salve, compile e clique no botão. Se tudo ocorreu bem deverá aparecer a mensagem de confirmação e o arquivo estará criado na pasta temp e com o texto adicionado, como vemos abaixo na Figura 02:

Figura 02 – Arquivo criado na pasta Temp

Ok, vamos criar agora o método referente ao botão Abrir Arquivo:



private void Abrir()

{

try

{

//Verifico se o arquivo que desejo abrir existe e passo como parâmetro a respectiva variável

if (File.Exists(strPathFile))

{

//Se existir "starto" um processo do sistema para abrir o arquivo e, sem precisar

//passar ao processo o aplicativo a ser aberto, ele abre automaticamente o Notepad

System.Diagnostics.Process.Start(strPathFile);

}

else

{

//Se não existir exibo a mensagem

MessageBox.Show("Arquivo não encontrado!");

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

}


Faça o mesmo que antes, dê dois cliques no botão Abrir Arquivo e chame o método recém-criado:



private void btnAbrir_Click(object sender, EventArgs e)

{

Abrir();

}


Salve, compile e clique no botão para ver o arquivo se abrir, como mostra a Figura 03:

Figura 03 – Arquivo aberto pelo formulário

Agora crie o método do botão Concatenar Arquivo, parecido com os métodos anteriores:



private void Concatenar()

{

try

{

//Verifico se o arquivo que desejo abrir existe e passo como parâmetro a respectiva variável

if (File.Exists(strPathFile))

{

//Crio um using, dentro dele instancio o StreamWriter, uso a classe File e o método

//AppendText para concatenar o texto, passando como parâmetro a variável strPathFile

using (StreamWriter sw = File.AppendText(strPathFile))

{

//Uso o método Write para escrever o arquivo que será adicionado no arquivo texto

sw.Write("\r\nTexto adicionado ao final do arquivo");

}

//Exibo a mensagem que o arquivo foi atualizado

MessageBox.Show("Arquivo atualizado!");

}

else

{

//Se não existir exibo a mensagem

MessageBox.Show("Arquivo não encontrado!");

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

}


Chame-o no botão:



private void btnConcatenar_Click(object sender, EventArgs e)

{

Concatenar();

}


Salve e clique no botão. Irá aparecer a mensagem seguinte, como vemos na Figura 04:

Figura 04 – Mensagem informando que o arquivo foi atualizado

Agora clique em Abrir Arquivo e veja o texto que foi concatenado, como mostra a Figura 05:

Figura 05 – Texto concatenado na abertura do arquivo

Assim finalizo a 1ª parte de nosso artigo. Na próxima parte criaremos os métodos para Alterar Arquivo e Excluir Arquivo. Aguardem!

Créditos à Bruno Belizário, que fez as videoaulas e ao Portal Linha de Código, por onde pude baixá-las (mediante assinatura), estudá-las e posteriormente fazer este artigo.

Quaisquer dúvidas mandem emails para wellingtonbalbo@gmail.com ou deixem nos comentários deste artigo que responderei o mais rápido possível.

Até o próximo artigo!

Postado em ASP.NET, C# | Marcado como , , , , , ,

6 respostas para “Trabalhando com Arquivos em C# – Parte 1”

  1. Silvio disse:

    Tutorial muito bom, parabéns!

  2. Jacqueline disse:

    Muito bom! =]

  3. Madson Lima disse:

    Muito bom!
    Mas estou com uma dúvida e não consegui encontrar a solução:

    Se eu quiser gerar um recibo e mandar para uma impressora de 40 colunas (impressão condensada), como faço?

    Alguém pode me ajudar?

    Grato

    Madson

  4. Jefferson disse:

    Muito bom!!!
    Parabéns!!!

    Existe alguma maneira de apagar apenas uma linha do arquivo ?
    Tipo o usuario entra com a ID para excluir apenas aquele dado.

  5. Jefferson, você nesse caso teria que percorrer todas as linhas em busca de qual deseja excluir.

Deixe uma resposta