Tcl:测试路径是相对的还是绝对的

时间:2015-01-27 14:01:01

标签: tcl

在Tcl中有一个很好的方法来测试一个给定的路径是相对路径还是绝对路径?当然,我可以明确地做到这一点:

  • 如果它以/开头,那就是绝对的。
  • 如果我在Windows上,它以\或X:\开头(对于某些字母X),它是绝对的。
  • 如果我在Mac上...... 等

但这看起来像是重新发明轮子。这个问题似乎很常见(例如,"文件规范化"就这样做),我怀疑Tcl库中必定有一些东西已经在做伎俩...

2 个答案:

答案 0 :(得分:5)

使用file pathtype $path。它会返回absoluterelativevolumerelative

答案 1 :(得分:1)

这是一种方式。请注意,此解决方案不适用于符号链接:

# Returns 1 (true) if path is absolute, 0 otherwise. Does not work
# with symbolic links
proc isAbsolute {path} {
    set absolutePath [file normalize $path]
    return [expr {$path eq $absolutePath}]
}