2016-12-30 1 views
0

私はC#を学び、テキストエディタのチュートリアルに進みました。私が理解していない何か奇妙なことが起こることを除いて、最終的な結果はかなりうまくいく。C#LoadFileが.txt、.rtfをロードするときに処理されない例外を投げる

テキストエディタですべてのファイルを書き込み/保存/読み込みすると正常に動作します。しかし、私が別のエディタでファイルを書き込んだり、どこかのインターネットからテキストファイルをダウンロードしたりすると、そのファイルは読み込まれません。

私は、ファイルをロードすると、私は

"An unhandled exception of type 'System.ArgumentException' occurred in System.Windows.Forms.dll" 

を取得し、私が見たときに、「詳細を見る」である氏は述べています

で見たときにテキストが(ファイル内にあるにもかかわらず
"File format is not valid." 

異なるテキストエディタ)、テキストプロパティには何も含まれていません。ファイル形式が正しくない結果になります。

テキストエディタ自体で(同じ拡張子で)作成されたファイルをロードするのはなぜか分かりませんが、別の場所からはロードできません。私は本当にこの1つのデバッグを始める方法がわかりません。私の保存ファイル/オープンファイルの方法を以下に示します。

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); 
     } 
    } 
} 

ヘルプファイルのファイルを開くには、

いただければ幸いです、ありがとう!

+1

リッチテキスト形式(* .RTF)のファイルを期待して保存していると思われますが、他のテキストエディタやダウンロードするファイルはプレーンテキストです。* .TXT –

+0

* .RTFファイルと* .TXTファイルをテキストエディタから読み込み、それらをリロードしてください。両方とも正常に動作します。私はまた、異なるテキストエディタの両方のファイルタイプを試しましたが、どちらも動作しません。 – spaderdabomb

+0

'GetCurrentDocument'は何を返しますか? 'LoadFile'が例外をスローすると言っているので、あなたが話している特定の' LoadFile'メソッドを教えてください。 –

答えて

1

ファイルのタイプを決定するのはファイルの拡張子だけではありません。このバージョンのメソッドでは、「通常の」RTFファイルとASCIIファイルの両方を読み込むことができます。

RichTextBoxStreamType Enumerationには、いくつかの可能性があります。別のエディタを使用して作成したファイルをロードしようとする場合は、RichTextBoxStreamType.RichTextの代わりにRichTextBoxStreamType.PlainTextを使用する必要があります。

+0

ありがとうございました! – spaderdabomb

関連する問題