Доступ до файлів (files API)

Потрібне право FILE_ACCESS у маніфесті. Прямий require('fs') недоступний (потрібен ROOT). Використовуйте глобальний об'єкт files: користувач схвалює кожен шлях; main process обмежує область.

Виняток: у кожного аддона є папка в temp ОС (ADDON_TMP_DIR). Шляхи всередині не потребують files.requestAccess.

Як це працює

  1. Вкажіть "FILE_ACCESS" у manifest.json.
  2. files.requestAccess(абсолютнийШлях, 'read' | 'manage') — нативний діалог згоди.
  3. Доступ до папки включає усі вкладені файли та папки.
  4. manage включає читання та метадані.
  5. Два відмови поспіль блокують запит на 30 секунд.
  6. Події fileAccessGranted / fileAccessRevoked через events.On.
  7. Користувач може відкликати доступ у налаштуваннях аддона.

Приклад

const result = await files.requestAccess('C:\\Games\\GTAV', 'manage');
if (result.success) {
  await files.writeFile('C:\\Games\\GTAV\\scripts\\mod.asi', '...');
}

events.On('fileAccessGranted', grant => console.log(grant.path));
events.On('fileAccessRevoked', grant => console.log('revoked', grant.path));

Методи

requestAccess, revokeAccess, hasAccess, listAccess, readFile, writeFile, appendFile, readdir, stat, exists, mkdir, unlink, rename, copyFile.

rename та copyFile

Детальніше англійською: api-file-access.md.