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 中时需要管理员权限 的相关文章

随机推荐