我正在学习C#并经历了一个文本编辑器教程。最后的结果非常好,除了有些奇怪的事情我不明白。
当我在文本编辑器中编写/保存/加载文件时,它们工作正常。但是每当我在不同的编辑器中编写文件/从某个地方从Internet下载文本文件时,文件都无法加载。
当我加载文件时,我得到了
"An unhandled exception of type 'System.ArgumentException' occurred in System.Windows.Forms.dll"
当我看“查看详细信息”时说
"File format is not valid."
即使文件中有文本(在不同的文本编辑器中查看),文本属性也没有,因为文件格式不正确。
我很困惑为什么它会加载文本编辑器本身(具有相同的扩展名)而不是来自其他地方的文件。我真的不确定如何开始调试这个。我的保存文件/打开文件方法如下所示。
打开文件
private void Open()
{
openFileDialog1.Filter = "RTF|*.rtf|Text Files|*.txt|VB Files|*.vb|C# Files|*.cs|All Files|*.*";
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK && openFileDialog1.FileName.Length > 0)
{
GetCurrentDocument.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.RichText);
}
}
保存文件
private void Save()
{
saveFileDialog1.FileName = tabControl1.SelectedTab.Name;
saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
saveFileDialog1.Filter = "RTF|.rtf";
saveFileDialog1.Title = "Save";
if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
if (saveFileDialog1.FileName.Length > 0)
{
GetCurrentDocument.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.RichText);
}
}
}
非常感谢帮助,谢谢!
答案 0 :(得分:1)
决定它的类型不仅仅是文件的扩展名。此版本的方法允许加载“常规”RTF文件和ASCII
文件。
RichTextBoxStreamType Enumeration提供了一些不同的可能性。如果您尝试加载使用其他编辑器创建的文件,则可能需要使用RichTextBoxStreamType.PlainText
而不是RichTextBoxStreamType.RichText
。