C#のファイルダイアログを使う

作成日:2018.12.17
  1. HOME
  2. 趣味のページ
  3. C#のファイルダイアログを使う

前のページでテキストファイルの読み込みと保存のサブルーチンを作りました。 あとはサブルーチンの引数に読み込むファイル(または保存先)のパスを渡して、サブルーチンを呼び出せばOKです。 今回はそのパスを指定するために、OpenFileDialogSaveFileDialogを使ってみようと思います。

OpenFileDialogの使い方

テキストの読み書きに使うコンポーネント一覧

開くファイルを選択する場合に使うのがOpenFileDialogです。LoadBtnのクリックイベントに以下のように記述して、選択したファイルのパスを取得します。

if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
	FLoad(openFileDialog1.FileName);
}

コードの説明

if(openFileDialog1.ShowDialog() == DialogResult.OK){…}

IF文を使います。ファイル選択ダイアログが開かれてOK(開く)が押されたなら、中括弧内の処理を行います。

FLoad(openFileDialog1.FileName);

FLoad()は前のページで見た、テキストファイルを読み込むサブルーチンです。カッコ内の引数にファイルパスを渡す仕様になっていました。

選択されたファイルのパスは、OpenFileDialogのFileNameプロパティで取得できます。

テキスト形式のファイルがエディタに読み込まれた

上図のように、無事テキストファイルを読み込むことができました。

因みにOpenFileDialogのMultiselectプロパティは初期状態でFalseになっていると思います。Trueだと複数ファイルを選択できるのですがまた別の処理を書かなければならないので、今回は1つのファイルだけ選択できるようにしています。

SaveFileDialog

ファイルを保存する場合は、SaveFileDialogを使います。

SaveFileDialogのDefaultExtプロパティにhtmlを指定

SaveFileDialogのDefaultExtプロパティにhtmlを指定しておくと(上図)、ファイル名に拡張子が付いてない場合に自動的に.htmlが付くようになります。HTMLエディタを作っているので、こうした指定を忘れずにしておきます。

そしてSaveBtnのクリックイベントに、次のように記述してファイルが保存されるようにします。

if(saveFileDialog1.ShowDialog() == DialogResult.OK)
{
	FSave(saveFileDialog1.FileName);
}

コードの説明

if(saveFileDialog1.ShowDialog() == DialogResult.OK){…}

OpenFileDialogの時と同じです。IF文を使って、保存ダイアログが開かれてOK(保存)が押されたならば、中括弧内の処理を行います。

FSave(saveFileDialog1.FileName);

FSave()は前のページで作成したファイルを保存するためのサブルーチンです。カッコ内の引数に、保存先のパスを指定する仕様になっていました。

作成されるファイルのパスは、SaveFileDialogのFileNameプロパティで取得できます。ここもOpenFileDialogと同じなので覚えやすいです。


次のページではテキストを1行ずつ読み書きする方法について書いていきます。