型 | プロパティ | 内容 |
---|---|---|
string | InitialDirectory | 最初に表示されるディレクトリ |
string | Title | ファイル ダイアログボックスのタイトル。これが空文字列ならば、「名前を付けて保存」または「開く」となる |
bool | RestoreDirectory | trueならば、ダイアログが閉じられるときに現在のディレクトリを以前のものに復元する。falseならば現在のディレクトリが更新されるため、次回ダイアログを開いたときは最後に表示していたディレクトリが表示される。 |
string | FileName | ダイアログで選択されたファイル名。ダイアログ表示前にこれを指定すると、初期値として提示できる
ディレクトリも含めて設定するとその全体がファイル名として表示されるため、ディレクトリを指定したいならばInitialDirectoryプロパティを用いる。 |
string[] | FileNames | ダイアログで選択されたすべてのファイル名 |
bool | AddExtension | trueならば、拡張子が指定されなかったときに自動で付加する。既定はtrue |
string | DefaultExt | 既定の拡張子 |
値を設定しない場合は、一般的に次のパスが利用されます。FileDialog.InitialDirectory プロパティ (System.Windows.Forms) | MSDN
たとえばInitialDirectoryを指定せず、くり返しダイアログを開いた場合、
OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.ShowDialog(); openFileDialog.ShowDialog();
最初に何らかのファイルを選択してダイアログを閉じると、次にはそのファイルがある場所が初期ディレクトリとして表示されます。一方でファイルを選択しないでダイアログを閉じると、次も同じ場所が初期ディレクトリとして表示されます。
ダイアログに表示するファイルを制限するフィルタを指定できます。フィルタの説明とその文字列は「|」で区切り、複数のフィルタを指定する場合にはそれも「|」で区切ります。FileDialog.Filter プロパティ (System.Windows.Forms) | MSDN
Text files (*.txt)|*.txt|All files (*.*)|*.*
指定が複雑になる場合には、次のように記述するとまとまります。
string AudioFomat = "*.wav;*.mp3"; string VideoFomat = "*.avi;*.mp4"; string[] filters = new string[] { string.Format( "All supported files ({0};{1})|{0};{1}", AudioFomat, VideoFomat ), string.Format( "Audio Files ({0})|{0}", AudioFomat ), string.Format( "Video Files ({0})|{0}", VideoFomat ), "All files (*.*)|*.*" }; string filter = string.Join( "|", filters);
ユーザーにファイルを開くように促す、標準的なダイアログボックスを表示できます。
OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"; openFileDialog.Multiselect = true; if (openFileDialog.ShowDialog() == DialogResult.OK) { string[] filenames = openFileDialog.FileNames; }
ユーザにファイルを保存する位置を選択するように促せます。
型 | プロパティ | 内容 | 既定値 |
---|---|---|---|
bool | CreatePrompt | trueならば、指定されたファイルが存在しないとき作成を確認する | false |
bool | OverwritePrompt | trueならば、指定されたファイルが存在するとき上書きを確認する | true |
Filterプロパティで提示したフィルタが選択されたとき、既定ではFileNameプロパティにそれが追加されます。この挙動は、AddExtensionやCheckFileExistsプロパティの設定によって異なります。
戻り値 | メソッド | 機能 |
---|---|---|
Stream | OpenFile() | FileNameプロパティの名前で、読み書き用にファイルを作成する。追記はできないため、そのような用途ではFileクラスを用いる |
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "txt files (*.txt)|*.txt";
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
System.IO.Stream stream = saveFileDialog.OpenFile();
if (stream != null)
{
//
stream.Close();
}
}