使用fs.writeFile保存exe文件

时间:2019-06-13 08:11:04

标签: node.js electron

我正在尝试从https位置保存exe文件,并将其保存以供本地使用。文件已保存,但尝试运行该文件时出现此错误“错误:命令失败:C:\ Users \ xxxx \ AppData \ Roaming \ testapp \ Updates \ update.exe 无法将“ C:\ Users \ xxxx \ AppData \ Roaming \ testapp \ Updates \ update.exe”识别为内部或外部命令, 可操作的程序或批处理文件。”当我从文件资源管理器运行update.exe时,出现此错误“此应用程序无法在您的PC上运行。要为您的PC查找版本,请与软件发行商联系。

const updaterUrl = 'https://xxx.xxx.com/updates/';

function downloadUpdate(filename) {
  // filename is update.exe
  https.get(updaterUrl + filename, (resp) => {
    let data = '';

    resp.on('data', (chunk) => {
      data += chunk;
    });

    resp.on('end', () => {
      let dir = path.join(app.getPath('userData'), 'Updates')
      let p = path.join(app.getPath('userData'), 'Updates', filename)

      if (!fs.existsSync(dir)) {
        fs.mkdirSync(dir, 484);
      }

      fs.writeFile(p, data, (err) => {
        if (err) {
          console.log('Error: ' + err.message)
        } else {
          runUpdate(p);
        }
      })
    });

  }).on("error", (err) => {
    console.log("Update error: " + err.message);
  });
}

function runUpdate(path) {
  exec(path, (err, stdout, stderr) => {
    if (err) {
      console.log(err);
      return;
    }
  });
}

我在做什么错了?

0 个答案:

没有答案