dialog
ファイルを開いたり、保存したり、アラートを出したりするために、ネイティブのシステムダイアログを表示します。
プロセス: Main
以下は複数のファイルを選択する dialog を表示する例です。
const { dialog } = require('electron')
console.log(dialog.showOpenDialog({ properties: ['openFile', 'multiSelections'] }))
メソッド
dialog
モジュールには以下のメソッドがあります。
dialog.showOpenDialogSync([browserWindow, ]options)
browserWindow
BrowserWindow (任意)
戻り値 string[] | undefined
- ユーザが選択したファイルパス。dialog がキャンセルされた場合は undefined
を返します。
browserWindow
の引数で、ダイアログは親ウインドウにアタッチされ、モーダル表示になります。
特定の種類だけにユーザーを制限したいとき、filters
には、表示または選択できるファイルの種類の配列を指定します。 以下がその例です。
{
filters: [
{ name: 'Images', extensions: ['jpg', 'png', 'gif'] },
{ name: 'Movies', extensions: ['mkv', 'avi', 'mp4'] },
{ name: 'Custom File Type', extensions: ['as'] },
{ name: 'All Files', extensions: ['*'] }
]
}
extensions
の配列には、ワイルドカードやドットを含む拡張子 (例えば、'png'
は問題ありませんが、'.png'
や '*.png'
はいけません) を入れないで下さい。 すべてのファイルを表示するには、'*'
ワイルドカードを使用して下さい (その他のワイルドカードはサポートされていません)。
注: WindowsとLinuxのオープンダイアログでは、ファイルとディレクトリの両方を選択することはできません。そのため、これらのプラットフォームで properties
に ['openFile', 'openDirectory']
を設定すると、ディレクトリの選択が表示されます。
dialog.showOpenDialogSync(mainWindow, {
properties: ['openFile', 'openDirectory']
})
dialog.showOpenDialog([browserWindow, ]options)
browserWindow
BrowserWindow (任意)
戻り値 Promise<Object>
- 以下を含むオブジェクトで実行されます。
canceled
boolean - dialog がキャンセルされたかそうでないか。filePaths
string[] - ユーザーによって選択されたファイルパスの配列. ダイアログがキャンセルされた場合、これは空の配列になります。bookmarks
string[] (任意)macOS MAS - セキュリティスコープ付きブックマークを含む base64 エンコードされたfilePaths
配列にマッチする配列。 データを取り込むためにsecurityScopedBookmarks
を有効にする必要があります。 (戻り値については、この表 を参照してください。)
browserWindow
の引数で、ダイアログは親ウインドウにアタッチされ、モーダル表示になります。
特定の種類だけにユーザーを制限したいとき、filters
には、表示または選択できるファイルの種類の配列を指定します。 以下がその例です。
{
filters: [
{ name: 'Images', extensions: ['jpg', 'png', 'gif'] },
{ name: 'Movies', extensions: ['mkv', 'avi', 'mp4'] },
{ name: 'Custom File Type', extensions: ['as'] },
{ name: 'All Files', extensions: ['*'] }
]
}
extensions
の配列には、ワイルドカードやドットを含む拡張子 (例えば、'png'
は問題ありませんが、'.png'
や '*.png'
はいけません) を入れないで下さい。 すべてのファイルを表示するには、'*'
ワイルドカードを使用して下さい (その他のワイルドカードはサポートされていません)。
注: WindowsとLinuxのオープンダイアログでは、ファイルとディレクトリの両方を選択することはできません。そのため、これらのプラットフォームで properties
に ['openFile', 'openDirectory']
を設定すると、ディレクトリの選択が表示されます。
dialog.showOpenDialog(mainWindow, {
properties: ['openFile', 'openDirectory']
}).then(result => {
console.log(result.canceled)
console.log(result.filePaths)
}).catch(err => {
console.log(err)
})
dialog.showSaveDialogSync([browserWindow, ]options)
browserWindow
BrowserWindow (任意)
Returns string
, the path of the file chosen by the user; if the dialog is cancelled it returns an empty string.
browserWindow
の引数で、ダイアログは親ウインドウにアタッチされ、モーダル表示になります。
filters
には、表示することのできるファイルの種類の配列を指定します。例については、dialog.showOpenDialog
を参照して下さい。
dialog.showSaveDialog([browserWindow, ]options)
browserWindow
BrowserWindow (任意)
戻り値 Promise<Object>
- 以下を含むオブジェクトで実行されます。
canceled
boolean - dialog がキャンセルされたかそうでないか。filePath
string - If the dialog is canceled, this will be an empty string.bookmark
string (任意)macOS MAS - 保存されたファイルのセキュリティスコープのブックマークデータを含む Base64 エンコードされた文字列。 出力するためにsecurityScopedBookmarks
を有効にする必要があります。 (戻り値については、この表 を参照してください。)
browserWindow
の引数で、ダイアログは親ウインドウにアタッチされ、モーダル表示になります。
filters
には、表示することのできるファイルの種類の配列を指定します。例については、dialog.showOpenDialog
を参照して下さい。
注意: macOS では、ダイアログを展開したり折りたたんだりする際の問題を避けるために、非同期バージョンを使用することを推奨します。
dialog.showMessageBoxSync([browserWindow, ]options)
browserWindow
BrowserWindow (任意)
戻り値 Integer
- クリックされたボタンのインデックス。
メッセージボックスを表示し、メッセージボックスが閉じられるまでプロセスをブロックします。 クリックされたボタンのインデックスを返します。
browserWindow
の引数で、ダイアログは親ウインドウにアタッチされ、モーダル表示になります。 browserWindow
が表示されていない場合、dialog はアタッチされません。 この場合は独立したウインドウとして表示されます。
dialog.showMessageBox([browserWindow, ]options)
browserWindow
BrowserWindow (任意)
戻り値 Promise<Object>
- 以下のプロパティを含む Promise で解決されます。
response
number - クリックされたボタンのインデックス。checkboxChecked
boolean -checkboxLabel
が設定された場合、チェックボックスのチェック状態。 そうでない場合はfalse
になります。
メッセージボックスを表示します。
browserWindow
の引数で、ダイアログは親ウインドウにアタッチされ、モーダル表示になります。
dialog.showErrorBox(title, content)
title
string - エラーボックスに表示するタイトル.content
string - エラーボックスに表示するテキストの内容.
エラーメッセージを表示するモーダルダイアログを表示します。
app
モジュールで ready
イベントが発生する前でも、このAPIは安全に呼び出すことができます。これは、起動の初期段階でのエラーを報告するのによく使用されます。 Linuxで、appの ready
イベントの前に呼び出すと、メッセージは標準エラーに出力され、GUIのダイアログは表示されません。
dialog.showCertificateTrustDialog([browserWindow, ]options)
macOS Windows
browserWindow
BrowserWindow (任意)
戻り値 Promise<void>
- 証明書信頼ダイアログが表示されると実行されます。
macOSでは、これはメッセージと証明書情報を表示するモーダルダイアログを表示し、ユーザーに証明書を信頼/インポートする選択肢を提供します。 browserWindow
の引数を指定すると、ダイアログは親ウインドウにアタッチされ、モーダル表示になります。
Windowsでは、使用されているWin32 APIのため、オプションはより限定的です。
- OSが独自の確認ダイアログを提供しているため、
message
の引数は使用されません。 - この確認ダイアログをモーダル表示にすることができないため、
browserWindow
の引数は無視されます。
ブックマーク配列
showOpenDialog
、showOpenDialogSync
、showSaveDialog
、 showSaveDialogSync
は bookmarks
と言う配列を返します。
ビルド種別 | securityScopedBookmarks 真偽値 | 戻り値の型 | 返り値 |
---|---|---|---|
macOS mas | True | Success | ['LONGBOOKMARKSTRING'] |
macOS mas | True | エラー | [''] (空文字列の配列) |
macOS mas | False | なし | [] (空の配列) |
non mas | any | なし | [] (空の配列) |
シート
macOS では、browserWindow
パラメータに BrowserWindow
の参照を指定した場合、ダイアログは、ウインドウにアタッチされたシートとして表示されます。ウインドウを指定しない場合、モーダルで表示されます。
BrowserWindow.getCurrentWindow().setSheetOffset(offset)
を呼び出すことで、シートがアタッチされるウインドウフレームからのオフセットを変更することができます。