node.js - 如何获取OS平台用户数据文件夹

kab*_*bal 30 node.js

我是Node.js的新手

我正在寻找一种方法来获取userdata文件夹使用node.js,这将适用于Windows和macOS

node.js实例将在用户的机器上运行

这将返回以下内容:

C:\Documents and Settings\JohnD\Application Data

C:\Users\JohnD\AppData\Roaming

/Users/JohnD/Library/Preferences

这可能吗?

谢谢

Luk*_*uke 96

请尝试以下方法:

process.env.APPDATA || (process.platform == 'darwin' ? process.env.HOME + '/Library/Preferences' : process.env.HOME + "/.local/share")
Run Code Online (Sandbox Code Playgroud)

预期的结果是:

OS X - '/ Users/user/Library/Preferences'

Windows 8 - 'C:\ Users\user\AppData\Roaming'

Windows XP - 'C:\ Documents and Settings\user\Application Data'

Linux - '/ home/user /.local/share'

  • 在Linux上,应该是`process.env.HOME +".local/share"或者只是`process.env.HOME`和一个应用程序`.dotfile`. (10认同)
  • 这是一个比接受的答案更好的解决方案. (8认同)
  • yuck在Linux中返回`/ var / local`。在2019年的Sindresorhus中,神灵几乎解决了所有基本问题-也在整个OS上都正确解决了。https://github.com/sindresorhus/env-paths。提示:在这里b4询问关于SO的任何基本JS问题。https://npms.io/search?q=author%3Asindresorhus (4认同)
  • 在我的linux盒子/ var/local需要sudo权限.这不应该是不需要sudo的地方吗? (2认同)

And*_*nak 8

您可以检查存储在process.env中的用户环境

另外,看看process.platform

再具体一点:

% node                                                                                                                                 
> console.log(process.env.HOME)
/Users/miktam
> console.log(process.platform)
darwin
Run Code Online (Sandbox Code Playgroud)

有了这些信息,您将能够实现您的需求.

  • 这不回答这个问题.这在Windows上不起作用,Windows上的主目录是HOMEPATH或USERPROFILE.提问者询问的路径也是本地应用程序路径而不是主目录. (13认同)