2013-10-13 36 views
1
我无法从RichTextBox中保存为txt文件

RichTextBox的保存对文件C#

这里

是代码:

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"); 

我要去的地方错了吗?!它说,因为它正被另一个进程使用...任何帮助将受到欢迎

感谢, dnisko

回答

4

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

File.Create将返回该文件的开放流,您需要在再次访问之前关闭它。如果您需要使用创建文件反正

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

SaveFile方法足以处理任何情况。 File.Create(路径);可以删除。 – varocarbas

0

File.Create返回创建的文件的流就不能访问该文件。

只要你不处理它,它会保持文件打开

您也可以使用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); 
     } 
+0

的SAVEFILE方法足以应付任何情况做如下。 File.Create(路径);可以删除。 – varocarbas

0
richTextBox1.SaveFile(saveFile1.FileName, RichTextBoxStreamType.PlainText);