我正在學習C#,並通過文本編輯器教程。最後的結果非常好,除了有些奇怪的事情我不明白。C#LoadFile拋出未處理的異常時,加載.txt,.rtf
當我在文本編輯器中寫入/保存/加載文件時,它們都能正常工作。但是,無論何時我在其他編輯器中寫入文件/從某處下載文本文件時,該文件都無法加載。
當我加載文件,我得到
"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);
}
}
}
幫助將不勝感激,謝謝!
我懷疑你的文本編輯器是期待和保存富文本格式(* .RTF)文件,而其他文本編輯器和下載的文件是純文本* .TXT –
我試過保存兩個* .RTF文件和* .TXT文件從文本編輯器,並重新加載它們 - 他們都很好。我也試過了不同的文本編輯器的兩種文件類型,並且都沒有工作 – spaderdabomb
GetCurrentDocument返回什麼?既然你說'LoadFile'會拋出一個異常,請告訴我們你正在談論哪個特定的'LoadFile'方法。 –