Function PATHNAME

UP


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. ファイル名としてのパス名

備考

なし。


TOP, Github