[Tips][SaveFileDialog] 複数のドットが付いた拡張子をサポートする

SaveFileDialogでは、複数のドットが付いた拡張子をサポートすることができます。

たとえば*.tar.gzのような拡張子をFilterプロパティに設定することが可能です。

ただし、この機能は既定ではオフにされており有効にするにはSupportMultiDottedExtensionsプロパティにTrueを設定する必要があります。

下記は複数のドットが付いた拡張子をサポートする例です。

画面デザインは下記のようにしました。

VBの例

' [ファイルの保存]ボタンクリック時の処理
Private Sub btnShowSaveDialog_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShowSaveDialog.Click
    '★★★複数のドットが付いた拡張子をサポートする★★★
    SaveFileDialog1.SupportMultiDottedExtensions = True

    'フィルターの設定
    SaveFileDialog1.Filter = "tar.gzファイル|*.tar.gz"

    'ダイアログの表示
    SaveFileDialog1.ShowDialog()
End Sub

' [保存]ボタンクリック時の処理
Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk
    Dim strFileName As String

    '★★★入力されたファイル名を取得★★★
    strFileName = IO.Path.GetFileName(SaveFileDialog1.FileName)

    'ファイル名をテキストボックスに表示
    txtInputFile.Text = strFileName
End Sub

C#の例

// [ファイルの保存]ボタンクリック時の処理
private void btnShowSaveDialog_Click(object sender, EventArgs e)
{
    // ★★★複数のドットが付いた拡張子をサポートする★★★
    saveFileDialog1.SupportMultiDottedExtensions = true;

    // フィルターの設定
    saveFileDialog1.Filter = "tar.gzファイル|*.tar.gz";

    // ダイアログの表示
    saveFileDialog1.ShowDialog();
}

// [保存]ボタンクリック時の処理
private void SaveFileDialog1_FileOk(object sender, CancelEventArgs e)
{
    string strFileName;

    // ★★★入力されたファイル名を取得★★★
    strFileName = System.IO.Path.GetFileName(saveFileDialog1.FileName);

    // ファイル名をテキストボックスに表示
    txtInputFile.Text = strFileName;
}

実行例は下記の通りです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です