Chapter 15無料公開

shell API のメソッドたち

Kei Touge
Kei Touge
2021.09.18に更新

https://www.electronjs.org/docs/api/shell

ファイルをゴミ箱に移動する

shell.trashItem(filepath)

main.ts
  ipcMain.handle('move-to-trash', async (_e, filepath): Promise<void> => {
    await shell
      .trashItem(filepath)
      .then(() => console.log(`${filepath} was removed.`))
      .catch((err) => console.log(`Error: ${err}`));
  });

ファイルをエクスプローラやファインダーで表示する

shell.showItemInFolder(fullpath)

main.js
  ipcMain.on('show-in-folder', (_e, filepath) => {
    shell.showItemInFolder(filepath);
  })

外部リンクをブラウザーで開く

shell.openExternal(url)

createMenu.ts
import { MenuItemConstructorOptions, Menu, shell } from 'electron';

export const createMenu = () => {
  const template: MenuItemConstructorOptions[] = [
    { role: 'fileMenu' },
    { role: 'editMenu' },
    { role: 'viewMenu' },
    { role: 'windowMenu' },
    {
      role: 'help',
      submenu: [
        {
          label: 'Support URL...',
          click: async () => {
            await shell.openExternal(
              'https://www.electronjs.org/docs/api/shell'
            );
          },
        },
      ],
    },
  ];

  if (process.platform === 'darwin') template.unshift({ role: 'appMenu' });

  return Menu.buildFromTemplate(template);
};