将richtextbox保存到文件C#

Posted

技术标签:

【中文标题】将richtextbox保存到文件C#【英文标题】:save richtextbox to file C# 【发布时间】:2013-10-13 11:24:59 【问题描述】:

我无法从 Richtextbox 保存到 .txt 文件

代码如下:

if (richTextBox1.Text != String.Empty)
            
                string dir = @"c:\\logs\\" + DateTime.Today.ToString("dd_MMM_yy");
                string path = @"c:\\logs\\" + DateTime.Today.ToString("dd_MMM_yy") + "\\" + DateTime.Now.ToString("HH.mm.ss") + ".txt";
                if (!Directory.Exists(dir))
                
                    Directory.CreateDirectory(dir);
                

                if (!File.Exists(path))
                
                    File.Create(path);
                    richTextBox1.SaveFile(path, RichTextBoxStreamType.RichText);
                

            
            else
                MessageBox.Show("ERROR");

我哪里错了?!它说它无法访问该文件,因为它正在被另一个进程使用......欢迎任何帮助

谢谢, 德尼斯科

【问题讨论】:

【参考方案1】:

您可以避免创建文件行,因为SaveFile 将为您创建文件。

File.Create 将返回文件的打开流,您需要在再次访问之前关闭它。如果您仍然需要使用创建文件,请执行以下操作

using(File.Create(path));
richTextBox1.SaveFile(path, RichTextBoxStreamType.RichText);

【讨论】:

SaveFile 方法足以应付任何情况。文件.创建(路径);可以删除。【参考方案2】:

File.Create 返回所创建文件的 Stream。

只要你不释放它,它就会保持文件打开

您也可以使用 Stream 直接写入文件。使用using 语句有助于解决任何分配问题。

        using (FileStream fs = File.Create(path))
        
            Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
            // Add some information to the file.
            fs.Write(info, 0, info.Length);
        

【讨论】:

SaveFile 方法足以应付任何情况。文件.创建(路径);可以删除。 感谢 MichaC 您回答了这个问题,为什么会出现问题,因为文件在创建后保持打开状态,人们可能会忘记处理。在这种情况下也是如此,SaveFile 方法就足够了,但记住人们的基本事物总是好的。【参考方案3】:
 richTextBox1.SaveFile(saveFile1.FileName, RichTextBoxStreamType.PlainText);

【讨论】:

【参考方案4】:

保存文件

private void btnSave_Click(object sender , EventArgs e)
   
     string  _Path=@"C:\temp\Untitled.txt";
      if (!File.Exists(_Path))
        
            StreamWriter SW = new StreamWriter(_Path);
            SW.WriteLine(richTextBox1.Text);
            SW.Close();
        
        else if (File.Exists(_Path))
        
            MessageBox.Show("This File is Exists");
            SaveFileDialog SFD = new SaveFileDialog();
            SFD.FileName = "";
            SFD.AddExtension = true;
            SFD.DefaultExt = ".txt";
            DialogResult result= SFD.ShowDialog();
            if(string.IsNullOrEmpty( SFD.FileName))
            
                return;
            
            else if(result==DialogResult.OK)
            
                StreamWriter SW = new StreamWriter(SFD.FileName);
                SW.WriteLine(richTextBox1.Text);
                SW.Close();
            

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于将richtextbox保存到文件C#的主要内容,如果未能解决你的问题,请参考以下文章

将richtextbox保存到文本文件(记事本)

如何将 RichTextBox 文本保存到文本资源文件?

如何将 BlockUIContainer 中 RichTextBox 的内容保存到 RTF 文件?

转发控件的所有属性

c# richtextbox : 如果把richtextbox中的文字图片保存到数据库(access)中。

从 RichTextBox 到文本文件,一行一行