はじめに
Windows Forms アプリケーションで OpenFileDialog を使用する際、ユーザーが前回ファイルを選択したディレクトリを記憶させ、次回ダイアログを開いたときにそのディレクトリを初期表示したい場合があります。そんな時に役立つのが RestoreDirectory プロパティです。この記事では、OpenFileDialog の RestoreDirectory プロパティについて、初心者の方にもわかりやすく解説します。RestoreDirectory プロパティを使うことで、ユーザーが最後に使用したディレクトリを記憶し、利便性を向上させることができます。具体的なコード例を交えながら、その使い方を見ていきましょう。
RestoreDirectory プロパティとは?
RestoreDirectory プロパティは、OpenFileDialog が閉じる際に、選択されたファイルのディレクトリを記憶するかどうかを指定するプロパティです。
- true:
OpenFileDialog が閉じる際に、選択されたファイルのディレクトリを記憶し、次回ダイアログを開いたときにそのディレクトリを初期ディレクトリとして使用します。 - false (既定値):
ディレクトリを記憶しません。InitialDirectory プロパティで指定されたディレクトリが常に初期ディレクトリとして使用されます。
RestoreDirectory プロパティの使い方 (コード例)
RestoreDirectory を有効にする
RestoreDirectory プロパティを true に設定することで、前回開いたディレクトリを記憶するように設定できます。
using System; using System.Windows.Forms; namespace OpenFileDialogSample { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void openButton_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Title = "ファイルを開く"; openFileDialog.Filter = "テキストファイル(*.txt)|*.txt|すべてのファイル(*.*)|*.*"; openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); // RestoreDirectory を有効にする openFileDialog.RestoreDirectory = true; if (openFileDialog.ShowDialog() == DialogResult.OK) { string filePath = openFileDialog.FileName; MessageBox.Show("選択されたファイル: " + filePath); } } } }
解説:
openFileDialog.RestoreDirectory = true;
RestoreDirectory プロパティを true に設定することで、OpenFileDialog が閉じる際に選択されたファイルのディレクトリが記憶され、次回ダイアログを開いたときにそのディレクトリが初期表示されます。
InitialDirectory と RestoreDirectory の組み合わせ
InitialDirectory プロパティと RestoreDirectory プロパティを組み合わせることで、より柔軟な初期ディレクトリの設定が可能です。
RestoreDirectory = true であり、かつ前回開いたディレクトリが存在しない場合、InitialDirectory プロパティで指定されたディレクトリが初期ディレクトリとして使用されます。
RestoreDirectory = false の場合、InitialDirectory プロパティで指定されたディレクトリが常に初期ディレクトリとして使用されます。
private void openButton_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Title = "ファイルを開く"; openFileDialog.Filter = "テキストファイル(*.txt)|*.txt|すべてのファイル(*.*)|*.*"; // 初期ディレクトリをマイドキュメントに設定 openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); // RestoreDirectory を有効にする openFileDialog.RestoreDirectory = true; if (openFileDialog.ShowDialog() == DialogResult.OK) { string filePath = openFileDialog.FileName; MessageBox.Show("選択されたファイル: " + filePath); } }
解説:
この例では、InitialDirectory プロパティで初期ディレクトリを「マイドキュメント」に設定し、RestoreDirectory プロパティを true に設定しています。この設定により、初回は「マイドキュメント」が初期表示されますが、2回目以降は前回ファイルを選択したディレクトリが初期表示されます。
まとめ
OpenFileDialog の RestoreDirectory プロパティは、ユーザーが前回開いたディレクトリを記憶し、利便性を向上させるための簡単な方法です。この記事で紹介したコード例を参考に、RestoreDirectory プロパティを効果的に活用し、ユーザーフレンドリーな Windows Forms アプリケーションを作成してください。
コメント