% Function PATHNAME
Function PATHNAME
pathname
pathspec => pathname
pathspec - パス名指定子
pathname - パス名
pathspecによって示されるパス名を返却します。
もしpathspec指定子がストリームのとき、
そのストリームは開いているか閉じているかのどちらでも指定でき、
その両方の場合はpathname
はファイルオープンに
使用された対応するファイル名を返却します。
pathname
は、
クローズされた後のファイルストリームについて
開いていたときのものと同じパス名を返却します。
もしpathspec指定子が論理パス名をオープンしたものによって 作成されたファイルストリームのときは、 論理パス名が返却されます。
;; ここでは大きなばらつきが許されます。 次のいくつかの例は、
;; ちょうど多くの可能性のうちの数例を示したものです。
;; 名前が特定の大文字小文字に正規化されるかどうかは
;; ファイルシステムと実装によって依存しますし、2つの異なった実装が
;; 同じファイルシステムを使用したとき多くの問題が起こり違いが
;; 生じるかもしれません。また内部的にどのように情報を格納するか
;; (場合によっては#S記法で表示する)も異なり、アクセス時に
;; 大文字小文字を変換するためにPATHNAME-NAMEなどの「アクセサ」を
;; 必要とする可能性があります。名前文字列の形式は、ファイルシステムと
;; 実装の両方に依存します。例えば、ある実装では名前文字列にホスト名を
;; 含めるかもしれませんし、別の実装では含めないかもしれないからです。
;; #S表記は一般に、#Pで使用するための適切な名前文字列が作成できない
;; 場合にのみ使用されます。
(setq p1 (pathname "test"))
=> #P"CHOCOLATE:TEST" ; 大文字小文字の正規化あり(例えばVMS)
OR=> #P"VANILLA:test" ; 大文字小文字の正規化なし(例えばUnix)
OR=> #P"test"
OR=> #S(PATHNAME :HOST "STRAWBERRY" :NAME "TEST")
OR=> #S(PATHNAME :HOST "BELGIAN-CHOCOLATE" :NAME "test")
(setq p2 (pathname "test"))
=> #P"CHOCOLATE:TEST"
OR=> #P"VANILLA:test"
OR=> #P"test"
OR=> #S(PATHNAME :HOST "STRAWBERRY" :NAME "TEST")
OR=> #S(PATHNAME :HOST "BELGIAN-CHOCOLATE" :NAME "test")
(pathnamep p1) => true
(eq p1 (pathname p1)) => true
(eq p1 p2)
=> true
OR=> false
(with-open-file (stream "test" :direction :output)
(pathname stream))
=> #P"ORANGE-CHOCOLATE:>Gus>test.lisp.newest"
なし。
なし。
pathname
,
logical-pathname
,
20.1. ファイルシステムの説明,
19.1.2. ファイル名としてのパス名
なし。