๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
Development/Electron

[Electron] dialog.showOpenDialog()

by DevIseo 2023. 6. 15.

dialog.showOpenDialogSync()

 ๐Ÿ’ก Electron ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ œ๊ณต๋˜๋Š” ๋ฉ”์„œ๋“œ

  • ์‚ฌ์šฉ์ž์—๊ฒŒ ํŒŒ์ผ ์„ ํƒ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ํŒŒ์ผ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Œ
  • ์ฃผ๋กœ ๋ฉ”์ธ ํ”„๋กœ์„ธ์Šค์—์„œ ์‚ฌ์šฉ 

์‚ฌ์šฉ ์˜ˆ์‹œ

const { dialog } = require('electron');

// ํŒŒ์ผ ์„ ํƒ ๋Œ€ํ™” ์ƒ์ž ์˜ต์…˜ ์„ค์ •
const options = {
  title: 'Open File', // ๋Œ€ํ™” ์ƒ์ž ์ œ๋ชฉ
  defaultPath: '/path/to/default', // ๊ธฐ๋ณธ ๊ฒฝ๋กœ
  buttonLabel: 'Open', // ํ™•์ธ ๋ฒ„ํŠผ ๋ ˆ์ด๋ธ”
  filters: [
    { name: 'Text Files', extensions: ['txt'] }, // ํŒŒ์ผ ํ•„ํ„ฐ
    { name: 'All Files', extensions: ['*'] }
  ],
  properties: ['openFile'] // ์—ด๊ธฐ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ ์„ ํƒ
};

// ํŒŒ์ผ ์„ ํƒ ๋Œ€ํ™” ์ƒ์ž ํ‘œ์‹œ
dialog.showOpenDialog(options)
  .then(result => {
    console.log(result.filePaths);
  })
  .catch(err => {
    console.error(err);
  });
  • showOpenDialog()์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ Œ๋”๋Ÿฌ ํ”„๋กœ์„ธ์Šค์—์„œ ๋น„๋™๊ธฐ์ ์œผ๋กœ ํŒŒ์ผ ์„ ํƒ ๋Œ€ํ™” ์ƒ์ž๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Œ.
  • ๋ฉ”์ธ ํ”„๋กœ์„ธ์Šค์™€์˜ ํ†ต์‹ ์„ ์œ„ํ•ด IPC(Inter-Process Communication)๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์Œ.
  • ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ํŒŒ์ผ์„ ์„ ํƒํ•˜๊ณ , ์„ ํƒํ•œ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ Promise์˜ ๊ฒฐ๊ณผ๋กœ ์–ป์„ ์ˆ˜ ์žˆ์Œ.

๋Œ“๊ธ€