【问题标题】:save richtextbox to file C#将richtextbox保存到文件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");

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

谢谢, 德尼斯科

【问题讨论】:

    标签: c# save richtextbox


    【解决方案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
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 2016-05-24
      • 1970-01-01
      • 2023-03-19
      相关资源
      最近更新 更多