46

我正在寻找一种使用 Node.js 获取 userdata 文件夹的方法,该方法适用于 Windows 和 macOS。

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

我需要返回以下内容的东西:

  • C:\Documents and Settings\JohnD\Application Data (Windows XP)
  • C:\Users\JohnD\AppData\Roaming (Windows Vista 及以上)
  • /Users/JohnD/Library/Preferences (苹果系统)

这可能吗?

4

2 回答 2

152

尝试以下操作:

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

预期结果是:

OS X - '/Users/用户/Library/Preferences'

Windows 8 - 'C:\Users\用户\AppData\Roaming'

Windows XP - 'C:\Documents and Settings\用户\应用程序数据'

Linux - '/home/用户/.local/share'

于 2014-10-07T02:22:37.607 回答
6

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

另外,看看process.platform

再具体一点:

% node                                                                                                                                 
> console.log(process.env.HOME)
/Users/miktam
> console.log(process.platform)
darwin

有了这些信息,您将能够实现您所需要的。

于 2013-10-09T15:35:13.177 回答