首页 > 解决方案 > 使用 fs.writeFile 保存 exe 文件

问题描述

我正在尝试从 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;
    }
  });
}

我究竟做错了什么?

标签: node.jselectron

解决方案


推荐阅读