[英]StreamWriter not writing
我正在嘗試使用StreamWriter
創建.txt
文件。 我希望能夠讀取一個文本文件,然后將該文件的內容自動寫入一個新的.txt
文件,並將其存儲到具有相同文件名的應用程序根目錄中。 (希望如此。)
目前,我無法找到一種解決方案來使其全部正常工作。 請看我的代碼。 任何指導將不勝感激。
private void button1_Click(object sender, EventArgs e)
{
//read in a .txt file// this all works fine
OpenFileDialog op = new OpenFileDialog();
if (op.ShowDialog() == DialogResult.OK)
richTextBox1.LoadFile(op.FileName, RichTextBoxStreamType.PlainText);
this.Text = op.FileName;
string filename = op.FileName;
// not working //
//create new .txt file contaning module notes
StreamWriter writer = new StreamWriter("..\\"op.FileName".txt" );
using (writer)
{
writer.Write(richTextBox1);
}
}
首先有幾個問題:
StreamWriter writer = new StreamWriter("..\\"op.FileName".txt" );
應該:
string filename = Path.GetFilename(op.FileName);
StreamWriter writer = new StreamWriter(".\\Notes\\" + filename);
然后另一個問題在這里:
using (writer)
{
writer.Write(richTextBox1);
}
嘗試:
using (writer)
{
writer.Write(richTextBox1.Text);
}
您基本上是在嘗試編寫RichTextBox
實例,因為它期望使用string
,所以該實例當然不起作用。
您可能還需要重新考慮:
if (op.ShowDialog() == DialogResult.OK)
richTextBox1.LoadFile(op.FileName, RichTextBoxStreamType.PlainText);
this.Text = op.FileName;
這里的if
構造將僅考慮其后的那一行,這會將以下各行置於危險區域,就像您取消打開一樣,它仍將運行。
所以放在一起:
using (OpenFileDialog op = new OpenFileDialog())
{
op.Filter = "Text Files|*.txt"; // Nice to have a filter
if (op.ShowDialog() == DialogResult.OK)
{
richTextBox1.LoadFile(op.FileName, RichTextBoxStreamType.PlainText);
this.Text = op.FileName;
string filename = Path.GetFilename(op.FileName);
StreamWriter writer = new StreamWriter(".\\Notes\\" + filename);
using (writer)
{
writer.Write(richTextBox1.Text);
}
}
} // Clean up the OpenFileDialog instance
這假定Notes
目錄存在。 如果不是,則必須創建它。 它還假定目錄位於工作目錄中,該目錄通常是可執行文件從中運行的目錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.