如何在flatfile中的文本框中保存文本?

时间:2016-02-10 10:03:35

标签: c#

我使用GUI开发了一个C#应用程序,并在文本框中保留了一些日志。当用户单击“保存”按钮时,将打开folderBrowserDialog。用户选择目录并单击“确定”。出现MessageBox包括“保存到文件...”的消息。操作完成。

我说的所有这些都发生了,但是 用户指定的目录 中没有文件。我既不使用 TextWriter 对象也不使用 File.WriteAllText(..),我总是失败。下面的代码有什么问题吗?

private void saveBtn_Click(object sender, EventArgs e)
    {
        if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
        {
            // create a writer and open the file
            TextWriter tw = new StreamWriter(folderBrowserDialog.SelectedPath + "logFile.txt");
            // write a line of text to the file
            tw.WriteLine(histTxt.Text);
            // close the stream
            tw.Close();

            //File.WriteAllText(folderBrowserDialog.SelectedPath + "logFile.txt", histTxt.Text);
            MessageBox.Show("Saved to " + folderBrowserDialog.SelectedPath + "\\logFile.txt", "Saved Log File", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }

2 个答案:

答案 0 :(得分:1)

使用Path.Combine创建/添加文件路径,如下所示:

        TextWriter tw = new StreamWriter(Path.Combine(folderBrowserDialog.SelectedPath, "logFile.txt"));

如果需要,这将添加当前操作系统的路径分隔符。

答案 1 :(得分:0)

创建流时,请使用using子句自动处理资源。如果您要创建文件:

using (FileStream fs = File.Create(path)) 
    using (TextWriter tw = new StreamWriter(fs))
    {
       tw.WriteLine(histTxt.Text);
       tw.Close();
    }

该代码应该有效,并释放File.Create方法在文件上创建的锁。