3

我无法从 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");

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

谢谢, 德尼斯科

4

3 回答 3

7

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

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

using(File.Create(path));
richTextBox1.SaveFile(path, RichTextBoxStreamType.RichText);
于 2013-10-13T11:32:03.020 回答
1

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);
        }
于 2013-10-13T11:31:01.217 回答
0
 richTextBox1.SaveFile(saveFile1.FileName, RichTextBoxStreamType.PlainText);
于 2017-05-06T00:20:50.917 回答