ファイルダイアログ
ボタンをクリックすると、ダイアログが開いて、選んだファイルを読み込んで、
フォームのテキストボックスに代入する処理。
private void button1_Click(object sender, EventArgs e) { DialogResult result; openFileDialog1.Filter = "txtファイル|*.txt|すべてのファイル|*.*"; result = this.openFileDialog1.ShowDialog(); if (result == DialogResult.OK) { string file_name = openFileDialog1.FileName; StreamReader reader; try { reader = new StreamReader(file_name, Encoding.GetEncoding("Shift_JIS")); textBox1.Text = reader.ReadToEnd(); reader.Close(); } catch { } } }
button1をクリックするとClickイベントが発生しますが、そのイベントが起きたときに、
ダイアログを開いて、Form1.Textに代入してます。
実際にファイルを読んでいるのは、StreamReaderですが、エラーが発生したときに
プログラムが止まらないように、TryCatchで囲んでいます。
WindowsMobileは内部は文字コードはユニコードですが、ファイルテキストはシフトJISで作っているので、
Encoding.GetEncoding("Shift_JIS")という記述があります。
このへんは定番処理なので、コピペで記述すればいいので、細かいことは考えないでいいでしょう(^^;
逆にファイルを保存するときは、こんな感じでいいと思います。
string file_name = "\\My Documents\\(以下フォルダ名も含めてファイル名を)"; try { StreamWriter writer = new StreamWriter(file_name, false, // 上書き ( true = 追加 ) Encoding.GetEncoding("Shift_JIS")); try { writer.WriteLine(textBox1.Text); } finally { writer.Close(); } } catch { }
textBox1.Textの中身を保存しています。
ファイル書き込みでエラーが起きた場合も起きなかった場合も
ファイルクローズを必ずしたいので、CatchじゃなくてFinalyに記述しています。
もっともSreamWriter自体がエラーだった場合はクローズの意味が無いので、
そのときはCatchに処理が移ってCloseは動きません。
このへんの障害対策は慣れてないので冗長なことをしてるかも(w