如何使用 C++17 std::filesystem 获取用户的主目录?

Ama*_*ani 5 c++ c++17

我需要获取当前用户的主目录,然后将其附加到其他目录的路径。由于该应用程序是跨平台的,因此该方法应考虑到这一点。我一直在寻找解决方案但没有成功。有没有办法使用 C++17 std::filesystem 获取当前用户的主目录?

Yak*_*ont 4

不。

您获得的唯一特殊目录是适合临时文件的目录和当前目录。

您必须编写一个特定于操作系统的包装器来获取主目录。我个人认为这是一个坏主意:相反,您应该具有“用户应用程序设置”目录功能、“用户文档”目录功能等(根据您的应用程序需求确定)。这些目录与主目录的比较位置因操作系统而异。

根据我的经验,拥有一个用于存储“类似注册表的属性集”的 API 是一个好主意(例如,在值上带有序列化代码的字符串到字符串映射)。它可以映射到 macOS 上的 plist、Windows 上的注册表以及 Linux 上的其他内容。

  • @jennifer我在句子、段落和单词1中介绍了这一点。剩下的就是我尝试从心理上确定OP将做错什么来解决问题并阻止它。将固定目录附加到用户主目录**将**违反操作系统规范,因为这些规范差异很大。 (2认同)