Electron - Node.js - fs.readFileSync 在构建 Electron 并在 Program Files 中时需要管理员权限

2024-01-09

我已经成功构建了我的电子应用程序,它看起来工作得很好。

我使用节点模块fs访问我的应用程序中使用的文件,这是 Electron 的标准事务。这在开发环境中完全符合预期,甚至当我使用 asar 构建我的应用程序时也是如此C:\Users\myApp\我可以从构建的电子应用程序访问这些文件。

但是,当我创建安装程序并将应用程序放置在 @C:\Program Files(x86)\myApp\

fs.readFileSync

以前它在开发版本和构建版本中都运行良好C:\Users\myApp\,现在需要以管理员权限运行才能读取文件,否则会抛出错误。

有什么解释吗?

电子版本:1.8.4 平台:Windows 7


我相信您可能希望将一些应用程序数据部署到 %APPDATA% 中,即 C:\Users\yourusername\AppData\Roaming,或者在电子的情况下,可以使用 app.getPath(' 将文件部署到 userData 文件夹中appData') 会将您引向 C:\Users\yourusername\AppData\Local\your_electron_app_name 或 app.getPath('userData')。https://github.com/electron/electron/blob/master/docs/api/app.md#appgetpathname https://github.com/electron/electron/blob/master/docs/api/app.md#appgetpathname

在该目录中,您无需提升权限即可更改文件。

如果您在程序文件中查看电子应用程序文件夹的属性,然后转到安全选项卡,您会注意到用户的权限设置是(读取和执行、列出文件夹内容和读取);但是,管理员可以访问完全控制(修改、读取和执行、列出文件夹内容、读取和写入)。

但是,如果您确实需要在程序文件或 ProgramData 中创建/编辑/删除文件,则需要提升权限,并且为了解决这个问题,您可能需要安装 npm 包 electro-sudo (https://www.npmjs.com/package/electron-sudo https://www.npmjs.com/package/electron-sudo) 或 sudo 提示符 (https://www.npmjs.com/package/sudo-prompt https://www.npmjs.com/package/sudo-prompt).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Electron - Node.js - fs.readFileSync 在构建 Electron 并在 Program Files 中时需要管理员权限 的相关文章

  • 查找数组中多个最大值的索引

    我有一个示例数组 var arr 10 67 100 100 我想找到数组中最大值的索引 该函数仅查找一个索引 function max arr var max arr 0 var maxIndex 0 for var i 1 i lt a
  • 粘性页脚不粘在 AngularJS 中

    Im working an angular site and im trying to implement a sticky footer across all views but the footer stops sticking whe
  • d3 树 - 有相同孩子的父母

    我一直在将代码从 JIT 转换为 D3 并使用树布局 我已经复制了代码http mbostock github com d3 talk 20111018 tree html http mbostock github com d3 talk
  • 在 JavaScript 中解析日期时间字符串

    有谁知道如何解析所需格式的日期字符串dd mm yyyy See Mozilla Core JavaScript 参考 日期对象 https developer mozilla org en Core JavaScript 1 5 Refe
  • 这是如何使用 msal-node 库获取刷新令牌?

    我正在使用 msal Nodejs 库 我有以下代码 const ouathClient new msal ConfidentialClientApplication msalConfig const tokenRequest code r
  • 按住鼠标时 JavaScript 重复动作

    是否有一个 JavaScript 函数每隔如此多的毫秒重复一次 以至于按住 html 按钮 如果这可以使用标准 JavaScript 来完成 那就太好了 但使用 jQuery 或 jQuery 插件也很棒 On the mousedown
  • 在选择下拉列表中选择特定选项时添加输入框

    我需要在选择选项时将输入添加到选择选项中 每当用户选择 其他 时 就会出现一个输入框供用户输入数据 HTML
  • 寻找在 gulp 中复制文件并根据父目录重命名的方法

    对于每个模块 我都有一些需要复制到构建目录的文件 并且正在寻找一种方法来最大限度地减少重复代码 gulp src client src modules signup index js pipe gulp dest build public
  • 如何在 jQgrid 中隐藏列但在添加/编辑面板中显示此列

    我想要一种我使用的控制形式 但字段数量太高了 如何显示网格 但只有表单添加 编辑弹出面板中的某些字段显示所有字段 以下是您可以执行此操作的方法 colModel name email label E mail editable true h
  • 在 forEach() 中使用 `this` [重复]

    这个问题在这里已经有答案了 免责声明 我正在学习 JavaScript 我有一个像这样的对象构造函数 var Palette function this colors red green blue this getColorCombinat
  • 当 eslint 从子文件夹运行时无法解析相对模块路径

    当我从存储库的根文件夹运行 eslint 时 一切运行正常 没有错误 但是当我从子文件夹运行时 我会得到大量导入 未解决的问题 而当我从根目录运行时则不会发生这种情况 reporoot subfolder0 subfolder1 MyFil
  • 在 Jscript 中实例化 System.Threading.Thread 对象

    我正在尝试使用 Jscript 创建一个新的 System Threading Thread 对象 但我无法让构造函数工作 如果我只是执行以下操作 var thread new Thread threadFunc function thre
  • PHP:在执行 php 脚本时显示“正在加载”页面

    这就是我现在所拥有的 我有一个网页 当访问该网页时 它会通过开放 API 连接到 Surveygizmo com 检索大量数据 然后将这些数据返回给我进行处理 此过程大约需要 10 12 秒 在执行时 页面只是处于 正在加载 状态 并且我会
  • AngularJS 与(Angular JS + jQuery)

    我有一个关于仅使用 AngularJS 和纯 JavaScript 以及使用 AngularJS 和 jQuery 时的性能问题 ex app directive fitHeight function window return restr
  • 输入号码时自动格式化 SSN

    我有一个文本字段 用户输入 SSN 号码 输入自身时 它应该格式化 就像关于文本字段的更改 它应该格式化999 999 999以这种方式在显示器本身上 kottenator 的脚本几乎已经完成 但它每隔 3 位数字就中断该值 而不是 3 位
  • 如何使 Meteor 上的服务器可以访问文本文件

    我很惊讶我无法在这里搜索我的答案 似乎没有其他人遇到这个问题 当您运行meteor服务时 js html等被打包在 meteor local build文件夹中 但它似乎排除了不是js或html的内容 我有一个名为 magicsets 的文
  • 为什么 Internet Explorer 无法使用 NodeJS 和 Express 下载 PDF?

    我正在使用 NodeJS 构建一个网站 需要提供一些 PDF 以及其他文件 由于我无法确定的原因 Internet Explorer 8 第一次无法在 Acrobat Viewer 中完全下载 PDF 有时此后多次 直接保存文件效果很好 但
  • 如何实现 chromecast 对 html5 播放器的支持

    我使用js和html5设计了一个具有一些自定义功能的html5播放器 现在我需要在html5播放器上添加chromecast选项 例如https raw githubusercontent com kim company videojs c
  • Twitter 引导选项卡和 JavaScript 事件

    我正在一个项目中使用 twitter bootstrap 特别是它的选项卡功能 http twitter github com bootstrap javascript html tabs http twitter github com b
  • 如何创建浏览器插件?

    我必须创建一个插件 当用户将鼠标悬停在某些术语上时 该插件必须显示信息 谁能告诉我如何做的方向 我对创建插件没有太多想法 我知道我想要做的事情可以通过java脚本来完成 但是java脚本文件可以作为浏览器插件安装吗 任何对此的想法将不胜感激

随机推荐