如何规范化 Nim 中的文件路径?

How to normalise file path in Nim?

os.normalized_path 输出 . 而不是完整路径。

import os
echo ".".normalized_path

该输出是正确的 - 它已“规范化”到当前目录,因此它是“.”,这是 *nix 上的有效路径。如果你想得到完整的路径,这样做:

import os
echo ".".normalizedPath().absolutePath()

@Yardanico 的回答仍然是正确的,但这太长了,无法留下评论。

normalizePath 不知道当前工作目录并在抽象路径上操作,保留输入是绝对的还是相对的。它的作用是:

  • 删除 extra/trailing 斜杠:'foo//bar/' => 'foo/bar'
  • 解决双点:'foo/../bar' => 'bar', '../foo' => '../foo'
  • 删除开头的“./”:“./foo”=> 'foo'

它没有:

  • 删除绝对路径中的初始双点,即 '/..' => '/..'
  • 将路径定界符转换为本机 os 定界符。
  • 正确处理 os9 的 idiosyncratic updirs