ぐ~たら ぷろぐらまー にっき

最近すぐ忘れるけー。

「ファイルを開く」ダイアログボックスの表示

めも

    ''' <summary>
    ''' 「ファイルを開く」ダイアログボックスの表示
    ''' </summary>
    ''' <param name="pFileName">初期表示するファイル名</param>
    ''' <param name="pDirectory">初期表示するディレクトリ</param>
    ''' <param name="pFilter">ファイルのフィルタ</param>
    ''' <param name="pFilterIndex">ファイルの種類 の初期設定</param>
    ''' <param name="pTitle">タイトル</param>
    ''' <param name="pMultiselect">複数のファイルを選択可能にする (初期値 False)</param>
    ''' <returns>ファイルのフルパス</returns>
    Public Function OpenFileName(Optional ByVal pFileName As String = "",
                                 Optional ByVal pDirectory As String = "C:\",
                                 Optional ByVal pFilter As String = "CSVファイル(*.csv)|*.csv;|すべてのファイル(*.*)|*.*",
                                 Optional ByVal pFilterIndex As Integer = 1,
                                 Optional ByVal pTitle As String = "ファイルを選択してください",
                                 Optional ByVal pMultiselect As Boolean = False) As String

        Dim ofd As New OpenFileDialog()

        ofd.FileName = pFileName
        ofd.InitialDirectory = pDirectory
        ofd.Filter = pFilter
        ofd.FilterIndex = pFilterIndex
        ofd.Title = pTitle
        ofd.Multiselect = pMultiselect

        ' ダイアログボックスを閉じる前に現在のディレクトリを復元する (初期値 False)
        'ofd.RestoreDirectory = True
        ' [ヘルプ] ボタンを表示する (初期値 False)
        'ofd.ShowHelp = True
        ' [読み取り専用] チェックボックスを表示する (初期値 False)
        'ofd.ShowReadOnly = True
        ' [読み取り専用] チェックボックスをオンにする (初期値 False)
        'ofd.ReadOnlyChecked = True
        ' 存在しないファイルを指定した場合は警告を表示する (初期値 True)
        'OpenFileDialog1.CheckFileExists = True
        ' 存在しないパスを指定した場合は警告を表示する (初期値 True)
        'OpenFileDialog1.CheckPathExists = True
        ' 拡張子を指定しない場合は自動的に拡張子を付加する (初期値 True)
        'OpenFileDialog1.AddExtension = True
        ' 有効な Win32 ファイル名だけを受け入れるようにする (初期値 True)
        'OpenFileDialog1.ValidateNames = True

        ' ダイアログを表示し、戻り値が [OK] の場合は、選択したファイルを表示する
        If ofd.ShowDialog() = DialogResult.OK Then

            If pMultiselect Then

                '複数選択の場合
                Dim strResult As String = ""
                For Each nFileName As String In ofd.FileNames
                    strResult = strResult & "," & ofd.FileName
                Next nFileName
                OpenFileName = strResult

            Else

                OpenFileName = ofd.FileName

            End If

        Else
            'キャンセルの時
            OpenFileName = ""
        End If

        ofd.Dispose()

    End Function