从RichtextBox中释放文件LoadFile方法
本文关键字:LoadFile 方法 文件 释放 RichtextBox | 更新日期: 2023-09-27 18:12:44
所以,我在表单的开头加载一个文件。我在表单中有"保存按钮"。当我点击它时,我想用richtextbox覆盖文件。Savefile方法。但我得到的是"Access to path.. "被拒绝"
我检查了一下,得到了这个:
- 当前用户的权限都被授予
- 调试文件夹有"只读"——试图删除,但他们总是回来
现在,我认为只有当我关闭
表单时程序才不会释放资源(文件)是否有办法强制执行?(我认为文件仍然加载到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方法之前创建控件的句柄。
问题解决:程序不允许我覆盖文件因为它们有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