Electron fs - EPERM: операция не разрешена, откройте «C: \ Windows \ System32 \ drivers \ etc \ hosts» - PullRequest
0 голосов
/ 18 апреля 2019


Есть ли в электронном или узловом узле способ попросить пользователя дать разрешение на редактирование файла, например, например, всплывающее окно, если вы хотите установить программу, и для этого вам нужны права администратора.

У меня нет проблем с чтением файла с настройками разрешений по умолчанию. Если я изменю права доступа к файлу в проводнике Windows, мое электронное приложение сможет записать / отредактировать файл, но это не решит мою проблему.

const fs = require("fs");
let letPathtoFile = "C:/Windows/System32/drivers/etc/hosts";

function funcReadFile() {

    fs.readFile(letPathtoFile, function (err, data) {
      if (err) {
        return console.error(err);
      }

        $('#idReadFileContent').text(data);
    });
}


function funcWriteFile() {
    let letNewContent = $('#idWriteFileContent').val();
    fs.writeFile(letPathtoFile, letNewContent, (err) => {
    if (err) {
        alert(err.message);
        console.log(err);
        return;
    }

    alert("File saved");
});
}

1 Ответ

0 голосов
/ 18 апреля 2019

Да, есть способ - вы можете использовать sudo-prompt ( NPM , GitHub ) или electron-sudo ( NPM , GitHub ).

Вам нужно будет выполнить команду exec, и должно появиться графическое приглашение ОС.

...