Visual C# - Write contents of a textbox to a .txt file

后端 未结 5 1806
遇见更好的自我
遇见更好的自我 2020-12-31 11:28

I\'m trying to save the contents of a textbox to a text file using Visual C#. I use the following code:

private void savelog_Click(object sender, EventArgs e         


        
相关标签:
5条回答
  • 2020-12-31 11:39

    This can be used to prompt for any file name.

    private void savelog_Click(object sender, EventArgs e)
    {
        SaveFileDialog dlg = new SaveFileDialog();
        dlg.Filter = "*.txt|*.txt";
        dlg.RestoreDirectory = true;
        if (dlg.ShowDialog() == DialogResult.OK)
        {
            File.WriteAllText(dlg.FileName, textBoxLog.Text);
        }
    }
    
    0 讨论(0)
  • 2020-12-31 11:46
    private void savelog_Click(object sender, EventArgs e)
        {
            if (folderBrowserDialog3save.ShowDialog() == DialogResult.OK)
            {
                // create a writer and open the file
                TextWriter tw = new StreamWriter(folderBrowserDialog3save.SelectedPath + "logfile1.txt");
                // write a line of text to the file
                tw.WriteLine(logfiletextbox.Text);
                // close the stream
                tw.Close();
                MessageBox.Show("Saved to " + folderBrowserDialog3save.SelectedPath + "\\logfile.txt", "Saved Log File", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
    

    small explanation: tw.WriteLine accepts object so it doesn't care what do you pass. Internally it calls .ToString. If .ToString is not overriden it just returns type's name. .Text is property with contents of TextBox

    0 讨论(0)
  • 2020-12-31 11:52

    I think what you need is:

    tw.WriteLine(logfiletextbox.Text);
    

    if you don't say '.Text' that's what you get

    Hope that helps!

    0 讨论(0)
  • 2020-12-31 11:53

    Options: When using WriteLine(), note that the content saved to the file is the Text of the TextBox, plus a newline. So, the contents of the file will not match exactly the contents of the TextBox. When would you care about this? If you use the file to read back in a Text property of a text box later, and go through the save->load->save->load...

    Your choices to preserve all text (if you using System.IO):

    File.WriteAllText( filename, textBox.Text )

    File.WriteAllLines( filename, textBox.Lines )

    If you insist on using TextWriter, you could use the using wrapper to handle disposing of the Stream, if you need to use complex logic in your write method.

    using( TextWriter tw = new ... )
    {
        tw.Write( textBox.Text );
    }
    

    Consider that IOExceptions may be thrown whenever attempting to access a file for reading or writing. Consider catching an IOException and handling it in your application (keeping the text, displaying to the user that the text could not be saved, suggest choosing a different file, etc).

    0 讨论(0)
  • 2020-12-31 11:54

    Using the TextWriter isn't really necessary in this case.

    File.WriteAllText(filename, logfiletextbox.Text) 
    

    is simpler. You'd use TextWriter for a file you need to keep open for a longer period of time.

    0 讨论(0)
提交回复
热议问题