[英]How do I use a Save Dialog Box in C# to save an ASCII text file?
好的,我可能在这里遗漏了一些非常简单的东西,但是我已经呆了一个多小时了,却一无所获。 :(我有一个使用Microsoft的Visual C#2008 Express Edition的C#项目。“保存”对话框会根据需要显示,但它从未生成该文件。实际上,一旦指定了文件,我希望应用程序将其保持最新数据作为日志文件。现在,如果能得到#######来制作一个空文件,我会很高兴,这是到目前为止我能想到的:
private void saveLogAsToolStripMenuItem_Click(object sender, EventArgs e)
{
if (DialogResult.OK == saveFileDialog1.ShowDialog())
{
// If the file name is not an empty string open it for saving.
if (saveFileDialog1.FileName != "")
{
/* This does not work.
// Saves the Image via a FileStream created by the OpenFile method.
System.IO.FileStream fs = (System.IO.FileStream)saveFileDialog1.OpenFile();
fs.Write((byte)"Success!\r\n", 0, 10);
fs.Close();
*/
}
else
{
textBox1.Text += "An invalid filename was specified.\r\n";
}
}
}
任何建议将不胜感激。 谢谢。
这将起作用:
using (System.IO.TextWriter tw = new System.IO.StreamWriter(saveFileDialog1.FileName))
{
tw.WriteLine("Success");
}
Gabriel的答案是正确的,除了他直接使用saveFileDialog1.FileName而不是SaveFileDialog上的OpenFile()方法。 如果希望您的应用程序在部分信任环境中工作,则需要使用OpenFile()并直接访问stread。
有关更多信息,请参见此MSDN文章 。
这是等效的代码:
using (var stream = dlg.OpenFile())
using (var writer = new System.IO.StreamWriter(stream))
{
writer.WriteLine("Success");
}
FileInfo fi = new FileInfo(saveFileDialog1.Filename);
StreamWriter stm = fi.OpenWrite;
// or
FileStream stm = fi.Open(FileMode.OpenOrCreate, FileAccess.Write, FileShare.None);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.