gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 11:21:16 49 4
gpt4 key购买 nike

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

我使用 Node 模块fs来访问我的应用程序中使用的文件,这是 Electron 的标准事务。这在开发环境中完全按照预期工作,即使当我使用 C:\Users\myApp\ 中的 asar 构建应用程序时,我也可以从构建的 Electron 应用程序访问文件。

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

fs.readFileSync

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

有什么解释吗?

Electron 版本:1.8.4平台:Windows 7

最佳答案

我相信您可能希望将一些应用程序数据部署到%APPDATA%中,即C:\Users\yourusername\AppData\Roaming,或者在 Electron 的情况下,可以使用app将您的文件部署到userData文件夹中。 getPath('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

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

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

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

关于javascript - Electron - Node.js - fs.readFileSync 在构建 Electron 并在 Program Files 中时需要管理员权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49763146/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com