Save to Notepad C#

Asked

Viewed 2,029 times

6

I wonder if someone could help me with the following. I intend to put a button in my program, which by clicking, save the content of a Textbox in a Notepad Document in the folder we want.

3 answers

7


Try it like this:

using System.IO; // Biblioteca Input/Output, importante para salvar e ler arquivos!

SaveFileDialog salvar = new SaveFileDialog(); // Cria instancia tipo SaveFileDialog
salvar.Filter = "Arquivos de Texto (*.txt)|*.txt"; // Mostra apenas arquivos de texto[opcional]
salvar.DefaultExt = "txt"; // Define a extensão padrão para arquivo de texto
DialogResult salvou = salvar.ShowDialog(); // Mostra o SaveFileDialog
if (salvou == DialogResult.Ok) // Só grava caso o usuário tenha clicado em OK          
{
    StreamWriter sw = null;
    try
    {
        sw = new StreamWriter(salvar.FileName); // Cria Instancia tipo StreamWriter, para gravar o arquivo
        sw.WriteLine(textbox1.Text); // Grava o conteúdo do textbox1 no arquivo
    }
    catch (IOException ex)
    {
        MessageBox.Show("IOException:\r\n\r\n" + ex.Message); // Mostra mensagem caso ocorra uma IOException
    }
    catch (Exception ex)
    {
        MessageBox.Show("Exception : \r\n\r\n" + ex.Message); //M ostra mensagem caso ocorra uma exceção que não seja do tipo IOException
    }
    finally
    {
        if (sw != null)
            sw.Close(); // Fecha a instancia StreamWriter, com ou sem exceção.
    }
}
else
{
    // Pode por um código aqui caso o usuário clique em cancel.
}

To record the contents of a Listbox, try this way:

using System.IO; // Biblioteca Input/Output, importante para salvar e ler arquivos!

    SaveFileDialog salvar = new SaveFileDialog(); // Cria instancia tipo SaveFileDialog
    salvar.Filter = "Arquivos de Texto (*.txt)|*.txt"; // Mostra apenas arquivos de texto[opcional]
    salvar.DefaultExt = "txt"; // Define a extensão padrão para arquivo de texto
    DialogResult salvou = salvar.ShowDialog(); // Mostra o SaveFileDialog
    if (salvou == DialogResult.Ok) // Só grava caso o usuário tenha clicado em OK          
    {
        StreamWriter sw = null;
        try
        {
          sw = new StreamWriter(salvar.FileName); // Cria Instancia tipo StreamWriter, para gravar o arquivo
          for (int i = 0; i < listBox1.Items.Count; i++) 
          { 
          sw.WriteLine(listBox1.Items[i]); //Vare o listbox e grava os itens, caso tenha algum.
          }
        }
        catch (IOException ex)
        {
            MessageBox.Show("IOException:\r\n\r\n" + ex.Message); // Mostra mensagem caso ocorra uma IOException
        }
        catch (Exception ex)
        {
            MessageBox.Show("Exception : \r\n\r\n" + ex.Message); //M ostra mensagem caso ocorra uma exceção que não seja do tipo IOException
        }
        finally
        {
            if (sw != null)
                sw.Close(); // Fecha a instancia StreamWriter, com ou sem exceção.
        }
    }
    else
    {
        // Pode por um código aqui caso o usuário clique em cancel.
    }

OBS:

It is important to close the StreamWriter so you can view the file with another application.

OBS2: Hare up to add the items in Listbox ;D

5

Only complementing the response of @Joãopaulopulga, as StreamWriter derives from TextWriter, and TextWriter implements IDisposable, the following code implements the Close and the correct disposal of the object StreamWriter after recording the file:

if (salvou == DialogResult.Ok) { // Só grava caso o usuário tenha clicado em OK          
   using (var sw = new StreamWriter(salvar.FileName)) { // Cria Instancia tipo StreamWriter, para gravar o arquivo
        sw.WriteLine(textbox1.Text); // Grava o conteúdo do textbox1 no arquivo
   }
}

3

== Just to complement the answers already given ==

It is possible to save a file with File.WriteAllText:

if (salvou == DialogResult.Ok)
{
    File.WriteAllText(
        salvar.FileName,
        textbox1.Text);
}

So you won’t have to work with StreamWriter, with using nor try/catch, and not have to worry about anything else.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.