ここではVB.NETで「名前を付けて保存」ダイアログボックスを表示する方法について紹介します。
目次
SaveFileDialogクラス
「名前を付けて保存 」ダイアログボックスを表示するには、SaveFileDialogクラスをインスタンス化して、ShowDialogメソッドでダイアログボックスを表示します。
SaveFileDialogクラスのプロパティ
以下は主なSaveFileDialogクラスのプロパティです。
プロパティ | 説明 |
---|---|
AddExtension | ユーザーが拡張子を省略した場合に、 ダイアログボックスで自動的にファイル名に拡張子を付けるかどうかを示す値を取得または設定します。 拡張子を自動的に付ける場合は「True」(既定値)、付けない場合は「False」を設定します。 |
CheckFileExists | 存在しないファイル名をユーザーが指定した場合に、 ダイアログボックスで警告を表示するかどうかを示す値を取得または設定します。 警告を表示する場合は「True」(既定値)、表示しない場合は「False」を設定します。 |
CheckPathExists | ユーザーが無効なパスとファイル名を入力した場合に警告を表示するかどうかを指定する値を取得または設定します。 警告を表示する場合は「True」(既定値)、表示しない場合は「False」を設定します。 |
FileName | ダイアログボックスで選択されたファイルの完全なパスを含む文字列を取得または設定します。 |
Filter | ダイアログボックスに表示されるファイルの種類を決定するフィルター文字列を取得または設定します。 |
FilterIndex | ダイアログボックスで現在選択されているフィルターのインデックスを取得または設定します。 |
InitialDirectory | ダイアログボックスに表示される初期ディレクトリを取得または設定します。 |
OverwritePrompt | 既に存在するファイル名を指定した場合に、上書きするかの警告を表示するかどうかを示す値を取得または設定します。 警告を表示する場合は「True」(既定値)、表示しない場合は「False」を設定します。 |
Title | ダイアログボックスのタイトル バーに表示されるテキストを取得または設定します。 |
「名前を付けて保存」ダイアログボックスのサンプル
まず、以下のようなフォームを作成します。上のテキストボックスにはファイルに出力する文字列を入力させます。下のテキストボックスにはダイアログボックスで選択した ファイルパスとファイル名を表示させます。
以下はボタンクリックで「名前を付けて保存」ダイアログボックスを表示するサンプルです。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Using dialog As New SaveFileDialog()
' プロパティの設定
With dialog
' ダイアログのタイトル
.Title = "名前を付けて保存"
' 初期ディレクトリ
.InitialDirectory = "C:\temp"
' ファイルのフィルタ
.Filter = "テキストファイル|*.txt;*log|すべてのファイル|*.*"
' 初期表示するファイル名
.FileName = "test.txt"
End With
' ダイアログを表示し、戻り値が [OK] の場合は、選択したファイル名を表示する
If dialog.ShowDialog() = DialogResult.OK Then
Dim path As String = dialog.FileName
' StreamWriterクラスを使ってテキストファイルにデータを書き込む
Using sw As New System.IO.StreamWriter(path, False, System.Text.Encoding.GetEncoding("Shift_JIS"))
sw.WriteLine(Me.TextBox1.Text)
End Using
TextBox2.Text = path
End If
End Using
End Sub
実行して [名前を付けて保存ダイアログボックス] ボタンをクリックするとダイアログボックスが表示されます。
既に存在するファイル名を指定した場合は、上書きするかを確認するメッセージが表示されます。
[保存] ボタンをクリックするとファイルが出力されてテキストボックスにファイルパス(FileName)が表示されます。
補足
初期ディレクトリをMY Documents(マイドキュメント)にしたい場合は、InitialDirectoryプロパティに「System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)」を設定します。
以上、「名前を付けて保存 」ダイアログボックスを表示する方法について解説しました。