跨平台配置文件中定义的路径的最佳实践

时间:2019-03-06 17:50:43

标签: node.js winapi configuration path posix

我正在构建一个节点应用程序,其中包含要由该应用程序的用户编辑的配置文件,并且其中包含文件路径。

这些配置文件将在Windows,Linux和MacOSX中使用。例如,可能在Windows和MacOSX中都开发了使用此应用程序的项目,但是配置文件相同。

在这种情况下,路径格式的最佳做法是什么?

我有两种可能:

  • 强制使用POSIX作为配置文件,然后在处理它们时将其转换为当前平台。这里的问题是Windows用户可能不喜欢使用与他们惯用的格式不同的路径。
  • 允许在配置文件中同时使用两种格式,并且在解析时将其转换为当前平台。恐怕这可能会导致问题解析。另外,它可能会导致奇怪的混合配置文件。

我认为现在有很多软件存在同样的困境,所以我想知道是否有一些最佳实践。

谢谢您的帮助!

编辑:路径仅是相对的,没有绝对路径。如果有人提供了绝对路径,那么该配置无论如何都不能在不同的操作系统中使用,所以没关系。

1 个答案:

答案 0 :(得分:0)

动态地在/\之间进行转换不是什么大问题,处理路径的根源就是问题所在。

我建议您增加对某种字符串扩展的支持,以便用户可以指定相对于已知位置的路径。也许是这样的:

imagedir=%config%/myimages
fallbackimagedir=%appdir%/images

您还应该尝试处理完整路径。

我建议您在读取POSIX系统上的配置时,将c:\foo之类的Windows驱动器盘符路径转换为/c/foo。这很容易,因为字符串长度相同,但是它确实假设/c已设置为有用的内容。

在Windows上读取POSIX路径比较麻烦,如果给定以/开头的路径,则必须给它加上前缀。这是由您自己决定的,可能取决于您安装应用程序的驱动器的驱动器号根。