新しいファイルを作成する際、上記ダイアログを表示してフォルダ・ファイル名を指定させるには
SaveFileDialogを用います。(既存ファイルを選択させる場合は
オープンファイルダイアログご参照)
SaveFileDialog
ダイアログを表示するには
~.ShowDialog() を用います。
「保存」を選択した判定は
DialogResult.OK を用います。
ファイル名の取得は
~.FileNameを用います。
/* インスタンスの初期化 */
SaveFileDialog SFD = new SaveFileDialog();
/* ダイアログを表示し「開く」場合 */
if (SFD.ShowDialog() == DialogResult.OK)
{
/* ファイル名を表示する */
MessageBox.Show(SFD.FileName);
}
初期フォルダを設定する
ダイアログを表示した際、特定のフォルダを開くようにするには
~.InitialDirectoryを用います。
/* インスタンスの初期化 */
SaveFileDialog SFD = new SaveFileDialog();
/* 初期フォルダ */
SFD.InitialDirectory = @"c:\test\";
/* ダイアログを表示し「開く」場合 */
if (SFD.ShowDialog() == DialogResult.OK)
{
/* ファイル名を表示する */
MessageBox.Show(SFD.FileName);
}
尚、特定のフォルダは
Environment.GetFolderPath(Environment.SpecialFolder.特定のフォルダ)で設定する事ができます。
| 特定のフォルダ |
場所 |
| ApplicationData |
C:\Users\・・・\AppData\Roaming |
| CommonApplicationData |
C:\ProgramData |
| CommonProgramFiles |
C:\Program Files\Common Files |
| Cookies |
C:\Users\・・・\AppData\Roaming\Microsoft\Windows\Cookies |
| Desktop |
デスクトップ |
| DesktopDirectory |
デスクトップ |
| Favorites |
お気に入り |
| History |
C:\Users\・・・\AppData\Local\Microsoft\Windows\History |
| InternetCache |
C:\Users\・・・\AppData\Local\Microsoft\Windows\Temporary Internet Files |
| LocalApplicationData |
C:\Users\・・・\AppData\Local |
| MyComputer |
ドキュメント? |
| MyDocuments |
ドキュメント |
| MyMusic |
ミュージック |
| MyPictures |
ピクチャ |
| Personal |
ドキュメント? |
| ProgramFiles |
C:\Program Files |
| Recent |
C:\Users\・・・\AppData\Roaming\Microsoft\Windows\Recent
(最近使った項目) |
| SendTo |
C:\Users\・・・\AppData\Roaming\Microsoft\Windows\SendTo |
| StartMenu |
C:\Users\・・・\AppData\Roaming\Microsoft\Windows\Start Menu
(スタートメニュー) |
| Startup |
C:\Users\・・・\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup |
| System |
C:\Windows\System32 |
| Templates |
C:\Users\・・・\AppData\Roaming\Microsoft\Windows\Templates |
例えば、お気に入りを初期設定としたい場合は下記のように記述します。
/* インスタンスの初期化 */
SaveFileDialog SFD = new SaveFileDialog();
/* 初期フォルダ */
SFD.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Favorites);
/* ダイアログを表示し「開く」場合 */
if (SFD.ShowDialog() == DialogResult.OK)
{
/* ファイル名を表示する */
MessageBox.Show(SFD.FileName);
}