Перейти к содержимому
Документация
Конструктор модулейВеб-интерфейсAPI

Electron

Настольные возможности: работа с файлами, системные диалоги, буфер обмена, пути и оболочка ОС.

Пространство Engine.api.electron открывает доступ к возможностям операционной системы: файлам, системным диалогам, буферу обмена, путям и оболочке ОС.

⚠️ Только в настольном приложении. В обычном браузере эти методы недоступны и вернут ошибку в поле error. Проверить окружение можно через Engine.api.electron.isDesktop().

Все методы асинхронные и возвращают { success, data }.


Проверка окружения

if (Engine.api.electron.isDesktop().data) {
  // Настольное приложение — файловые методы доступны
} else {
  Engine.api.dialog.alert('Эта функция доступна только в приложении', { type: 'warning' });
}

Системные диалоги

Выбрать файл

Engine.api.electron.openFile(параметры?) — открывает системный диалог выбора файла. Возвращает выбранные пути.

Параметры (необязательно): заголовок окна, фильтры по типам файлов, разрешение множественного выбора.

const res = await Engine.api.electron.openFile({
  title: 'Выберите файл сессии',
  filters: [{ name: 'Сессии', extensions: ['session'] }]
});
if (res.success && !res.data.canceled) {
  console.log(res.data.filePaths);
}

Выбрать, куда сохранить файл

Engine.api.electron.saveFile(параметры?) — открывает диалог сохранения файла. Возвращает выбранный путь.

Выбрать папку

Engine.api.electron.openFolder(параметры?) — открывает диалог выбора папки.

Показать системное окно с сообщением

Engine.api.electron.showMessage(параметры?) — показывает системное окно с сообщением и кнопками.


Файловая система

Чтение и запись

  • readFile(путь, кодировка?) — читает файл (по умолчанию 'utf-8').
  • writeFile(путь, содержимое, кодировка?) — записывает файл, перезаписывая содержимое.
  • appendFile(путь, содержимое, кодировка?) — дописывает в конец файла.
await Engine.api.electron.writeFile('C:/data/log.txt', 'Начало\n');
await Engine.api.electron.appendFile('C:/data/log.txt', 'Ещё строка\n');

const res = await Engine.api.electron.readFile('C:/data/log.txt');
if (res.success) console.log(res.data);

Управление файлами и папками

  • exists(путь) — существует ли файл или папка.
  • stat(путь) — сведения о файле (размер, даты).
  • deleteFile(путь) / remove(путь) — удаляет файл.
  • copy(источник, назначение) — копирует файл.
  • rename(старыйПуть, новыйПуть) — переименовывает или перемещает.
  • mkdir(путь, рекурсивно?) — создаёт папку (по умолчанию рекурсивно).
  • readDir(путь) — возвращает содержимое папки.
const res = await Engine.api.electron.exists('C:/data');
if (!res.data) {
  await Engine.api.electron.mkdir('C:/data');
}

const list = await Engine.api.electron.readDir('C:/data');
console.log(list.data);

Буфер обмена

Прочитать буфер обмена

Engine.api.electron.clipboardRead() — возвращает текст из буфера обмена.

Скопировать текст в буфер обмена

Engine.api.electron.clipboardWrite(текст) — копирует текст в буфер обмена.

await Engine.api.electron.clipboardWrite('Скопированный текст');
const res = await Engine.api.electron.clipboardRead();
console.log(res.data);

Пути

Помогают собирать и разбирать пути независимо от ОС.

  • pathJoin(...части) — соединяет части пути.
  • pathResolve(...части) — собирает абсолютный путь.
  • pathDirname(путь) — папка файла.
  • pathBasename(путь, расширение?) — имя файла.
  • pathExtname(путь) — расширение файла.
const res = await Engine.api.electron.pathJoin('C:/data', 'reports', 'out.txt');
console.log(res.data); // C:/data/reports/out.txt

Оболочка ОС

Открыть ссылку в браузере

Engine.api.electron.openExternal(адрес) — открывает ссылку во внешнем браузере.

Открыть файл или папку

Engine.api.electron.openPath(путь) — открывает файл или папку в приложении по умолчанию.

Показать файл в проводнике

Engine.api.electron.showInFolder(путь) — показывает файл в проводнике, выделяя его.

await Engine.api.electron.openExternal('https://example.com');
await Engine.api.electron.showInFolder('C:/data/report.pdf');

Приложение и система

  • getDataPath() — папка данных приложения (для хранения ваших файлов).
  • getAppPath(имя?) — системная папка по имени (например, загрузки, документы).
  • getAppVersion() / getAppName() — версия и имя приложения.
  • getPlatform() — платформа ('win32', 'darwin', 'linux').
  • getHomeDir() / getTempDir() — домашняя и временная папки.
  • getEnv(имя) — значение переменной окружения.
  • isDesktop() — работает ли интерфейс в настольном приложении.
const res = await Engine.api.electron.getDataPath();
const logPath = await Engine.api.electron.pathJoin(res.data, 'my-interface.log');
await Engine.api.electron.appendFile(logPath.data, 'Запись\n');