Racket 中的清理路径 vs 解析路径 vs 规范化路径 vs 简化路径

  • 本文关键字:路径 vs 规范化 Racket path racket
  • 更新时间 :
  • 英文 :


Racket似乎有4个用于制作规范路径的函数,但每个函数都略有不同。它们是cleanse-pathresolve-pathsimplify-pathnormalize-path

显然,这些函数与其中一些接受不同参数的功能不同。但是文档在这里缺少任何示例。那么,这四个非常相似的功能之间有什么区别呢?

If(memq (system-type 'os) '(unix macosx))

  • cleanse-path/替换//
  • resolve-path解析符号链接
  • simplify-path消除了额外的...
  • normalize-path创建绝对路径并解析符号链接

(还有simple-form-path.这可能是你想要的。

下面是一个示例交互,在无意义的路径上使用 4 个函数:

Welcome to Racket v6.10.0.1.
> (current-directory (find-system-path 'sys-dir))
; now in /
> (cleanse-path "foo//bar/baz/..")
#<path:foo/bar/baz/..>
> (resolve-path "foo//bar/baz/..")
#<path:foo/bar/baz/..>
> (simplify-path "foo//bar/baz/..")
#<path:/foo/bar/>
> (normalize-path "foo//bar/baz/..")
; normalize-path: element within the input path is not a directory or does not
;   exist
;   element: /foo

下面是一个在符号链接(在我的计算机上(上使用normalize-pathsimple-form-path的示例:

Welcome to Racket v6.10.0.1.
> (current-directory "/usr/local/bin")
; now in /usr/local/bin
> (normalize-path "racket")
#<path:/Users/ben/code/racket/fork/racket/bin/racket>
> (simple-form-path "racket")
#<path:/usr/local/bin/racket>

如果(eq? (system-type 'os) 'windows),请参阅有关 Windows 路径的 Racket 文档

相关内容

  • 没有找到相关文章

最新更新