簡體   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