我使用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);
}
}
答案 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方法在文件上创建的锁。