gpt4 book ai didi

electron - 使用 electron-builder 的 snap 安装程序的默认主目录

转载 作者:行者123 更新时间:2023-12-03 12:37:47 25 4
gpt4 key购买 nike

我目前正在构建一个 Electron 应用程序并构建安装程序,例如 .deb.snap与 Electron 生成器。在应用程序内部,出于某种原因,我需要访问用户主目录,我正在使用 process.env.HOME || process.env.USERPROFILE获取主目录(app.getPath('home') 返回相同)。这适用于其他情况,但是当应用程序与 .snap 一起安装时,而不是实际的主目录(/home/username),这将返回 ~/snap/<app_name>/3/作为主目录。 ( 3 是快照修订号)
在所有情况下如何获取实际的主目录(/home/username)?

最佳答案

请注意 ~/不是有效路径;扩展为 $HOME由壳。您正在寻找的实际路径将是 /home/username大多数情况下。一个简单的解决方案是简单地假设它是主目录。
为了防止主文件夹不在此位置的情况,我们应该询问操作系统:
操作系统模块

const os = require("os");

const user_name = os.userInfo().username;
const user_dir = os.userInfo().homedir;

console.log(user_name, user_dir);
来自 NodeJS docs :

The value of homedir returned by os.userInfo() is provided by the operating system. This differs from the result of os.homedir(), which queries environment variables for the home directory before falling back to the operating system response.


posix模块
(原始答案)如果由于某种原因上述方法不起作用,您可以明确使用 getpwnam/etc/passwd 查找实际的主目录:
const posix = require("posix");
const os = require("os");

const user_name = os.userInfo().username;
const user_dir = posix.getpwnam(user_name).dir;

console.log(user_name, user_dir);
您需要安装 posix模块第一:
npm install posix

关于electron - 使用 electron-builder 的 snap 安装程序的默认主目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65778302/

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