【Powershell】ファイルダイアログで拡張子を絞る方法

スポンサーリンク
powershell
スポンサーリンク

ファイルダイアログで初期選択できる拡張子を絞る方法

ファイル選択のダイアログを利用するとき、何でもかんでも選択させたいわけじゃなくて「csv」とか「xlsx」だけを選択させたいときがある。そんなときはOpenFileDialogのFilterプロパティを使うと幸せになれる。

実際のコード

ファイル選択ダイアログの使い方は下の記事をご参考にしてください。

ここでは、上の記事をベースに「$ButtonFilePath」(参照ボタン)が定義されている状態と仮定する。
参照ボタンを開いたときの動作「$ButtonFilePath.add_click」に組み込む必要がある。
こんな感じ($Dialog.Filter = "CSVファイル(*.csv) | *.csv" の部分

# 参照ボタンをクリック時の動作
$ButtonFilePath.add_click{

    #ダイアログを表示しファイルを選択する
    $Dialog = New-Object System.Windows.Forms.OpenFileDialog
    $Dialog.Filter = "CSVファイル(*.csv) | *.csv"

  ###ここのDialog.Filter = で指定している拡張子が初期選択できる拡張子になります。
    if($Dialog.ShowDialog() -eq "OK"){
        $TextBoxFilePath.Text = $Dialog.FileName
    }
}

すると、こんな感じにファイルダイアログでファイル種別をはじめから特定のもの(ここではcsv)に絞ることができる。

色んな拡張子の指定方法

基本的に表示フォーマットは
"[表示名]|*.[拡張子1];*.[拡張子2];"
となる。これを踏まえていくつかの拡張子の指定方法をサンプルとして記載する。

Excel"Excelブック (*.xlsx;*.xls;*.xlsm)|*.xlsx;*.xls;*.xlsm"
CSV"CSVファイル(*.csv) | *.csv"
PowerPoint"PowerPointプレゼンテーション(*.pptx;*.ppt;*.pptm)|*.pptx;*.ppt;*.pptm"
Word"word文書 (*.docx;*.doc;*.docm)|*.docx;*.doc;*.docm"
txt"テキストファイル (*.txt)|*.txt"
log"ログファイル (*.log)|*.log"
画僧ファイル"画像ファイル(*.PNG;*.JPG;*.GIF)|*.PNG;*.JPG;*.JPEG;*.GIF"

また、初期選択できる拡張子は絞りたいけど、一応他の拡張子も選べるようにしたい場合は以下のように記載するとよい。
「"テキストファイル (.txt)|.txt|すべてのファイル (.)|." 」
※パイプで複数指定を行う。

注意点と補足

  • PowerShellが実行可能な環境である必要があります。

改版履歴

2021/02/07 初版公開

コメント

タイトルとURLをコピーしました