Я изучаю C# и прошел учебник по текстовому редактору. Конечный результат работает неплохо, за исключением чего-то странного, чего я не понимаю.C# LoadFile бросает необработанное исключение при загрузке .txt, .rtf
Когда я пишу/сохраняю/загружаю файлы, все в текстовом редакторе работают нормально. Но всякий раз, когда я пишу файл в другом редакторе или загружаю текстовый файл из Интернета где-то, файл не загружается.
Когда я загружаю файл, я получаю
"An unhandled exception of type 'System.ArgumentException' occurred in System.Windows.Forms.dll"
И когда я смотрю на «Подробнее» является говорит
"File format is not valid."
Даже если есть текст в файле (если смотреть в другой текстовый редактор), свойство text ничего не имеет в нем, в результате неправильный формат файла.
Я довольно смущен, почему он будет загружать файлы, сделанные в самом текстовом редакторе (с тем же расширением), но не из другого места. Я действительно не уверен, как начать отладку этого. Мои методы сохранения файла/открытого файла перечислены ниже.
Open File
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);
}
}
}
Помощь будет высоко ценится, спасибо!
Я подозреваю, что текстовый редактор ожидает и сохраняет файлы формата Rich Text (* .RTF), тогда как другие текстовые редакторы и файлы, которые вы загружаете, являются простым текстом * .TXT –
Я попытался сохранить как файлы * .RTF, так и * .TXT файлов из текстового редактора и их перезагрузки - они оба работают нормально. Я также пытался использовать оба типа файлов из разных текстовых редакторов, и ни один из них не работает – spaderdabomb
Что возвращает 'GetCurrentDocument'? Поскольку вы говорите, что 'LoadFile' генерирует исключение, сообщите нам, какой именно метод LoadFile вы говорите. –