Linux 上的 UNC 路径构造

UNC path construction on Linux

我有一个函数使用 path.join 构造一个 UNC 路径供另一个 (Windows) 系统使用(Node.js 应用程序不需要访问它,它只需要正确构建路径):

function constructUncPath (fileName, userLastName) {
  var storageLocation = getStorageLocation(); // Returns a UNC base path
  var todayDateFormatted = moment().format('YYYYMMDD');
  return path.join(storageLocation, userLastName + '_' + todayDateFormatted + '_' + fileName);
}

在 Windows 上它正确地创建了路径,但是在 Linux 上它失败了,因为它插入了正斜杠而不是反斜杠:

 + expected - actual

      -\path\to/user_20150101_file.txt
      +\path\to\user_20150101_file.txt

有没有办法强制 path.join 使用反斜杠而不是正斜杠?

或者我应该在加入后明确替换它们吗?

path.join() 不会这样做,因为它正在从 运行 所在的机器上获取正斜杠字符。有很多方法可以编写 path.join() 替换,但使用 .Replace("/", "\") 是最简单的。

顺便说一下,如果您不必支持 Windows 9x,那就别费心了。 Windows 将在那里使用正斜杠就好了。