从RichtextBox中释放文件LoadFile方法

本文关键字:LoadFile 方法 文件 释放 RichtextBox | 更新日期: 2023-09-27 18:12:44

所以,我在表单的开头加载一个文件。我在表单中有"保存按钮"。当我点击它时,我想用richtextbox覆盖文件。Savefile方法。但我得到的是"Access to path.. "被拒绝"

我检查了一下,得到了这个:

  1. 当前用户的权限都被授予
  2. 调试文件夹有"只读"——试图删除,但他们总是回来

现在,我认为只有当我关闭

表单时程序才不会释放资源(文件)

是否有办法强制执行?(我认为文件仍然加载到RAM内存)

还有一点:我必须使用SaveFile和LoadFile方法。我正在使用RTF文件,我的代码是这样一种方式,这种方法做最好的工作。

    public EditareArticol(string path,List<capitol>chapters,Object[,]lca)
    {
        this.richTextBoxEx1.LoadFile(path, RichTextBoxStreamType.RichText);
    }
    private void saveToolStripButton_Click(object sender, EventArgs e)
    {
        richTextBoxEx1.SaveFile("articles''" + 
                                textBox1.Text + ".dat",
                                RichTextBoxStreamType.RichText);  
File.SetAttributes("articles''" + textBox1.Text + ".dat", File.GetAttributes("articles''" + textBox1.Text + ".dat") | FileAttributes.Hidden);        
    }
编辑:

我认为这都是关于特定文件的句柄。
来自MSDN文档:

LoadFile方法不会打开文件,直到为RichTextBox创建句柄。确保在调用LoadFile方法之前创建控件的句柄。

从RichtextBox中释放文件LoadFile方法

问题解决:程序不允许我覆盖文件因为它们有HIDDEN属性
一旦我删除了它,所有的开始工作很好。
谢谢您的帮助

我遇到了同样的问题(第一次写入文件,然后加载,但第二次没有再次保存)。我的解决方案是使用ReadAlltext而不是LoadFile。我知道这是一个古老的问题,但我花了很多时间寻找解决方案,并没有找到明确的答案。我不懂技术,但它对我有用,可能对别人也有用。

我的解决方案:

string path = "whatever...."
// TO SAVE / OVERWRITE :
 richTextBox1.SaveFile(path, RichTextBoxStreamType.PlainText);
// TO LOAD:
richTextBox1.Text= File.ReadAllText(path);

如果您遇到特殊字母如ÁÉÕã的问题,您可以为加载方法指定unicode代码,例如:

richTextBox1.Text= File.ReadAllText(path, Encoding.UTF7);

有效选项为UTF7, UTF8, ASCII, Default, UTF32, Unicode