【发布时间】:2013-05-23 06:26:15
【问题描述】:
我使用 SBCL 1.1.4,发现 pathname-directory 的行为很奇怪:
说有一个路径名包含“..”,下面的例子很简单。 SBCL 将每个 ".." 转换为 ":UP"
(pathname-directory "a/b/../")
(:RELATIVE "a" "b" :UP)
(pathname-directory "a/../b/../")
(:RELATIVE "a" :UP "b" :UP)
问题来了:
(pathname-directory "C:/test/../")
;;=> (:ABSOLUTE "test" :UP)
(truename "C:/test/..")
#P"C:/test/../"
(pathname-directory (truename "C:/test/.."))
;;=> (:ABSOLUTE "test" "..")
(pathname-directory #P"C:/test/../")
;;=> (:ABSOLUTE "test" :UP)
在 truename 的返回值上调用 pathname-directory 时,“..”不会转换为“:UP”。 (truename "C:/test/..") 也返回#P"C:/test/../",那为什么".." 没有被转换呢?
【问题讨论】:
标签: directory common-lisp sbcl pathname