繁体   English   中英

如何在C#中使用“保存”对话框来保存ASCII文本文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM