% Function PATHNAME-HOST, PATHNAME-DEVICE, PATHNAME-DIRECTORY, PATHNAME-NAME, PATHNAME-TYPE, PATHNAME-VERSION
Function PATHNAME-HOST
PATHNAME-DEVICE
, PATHNAME-DIRECTORY
,
PATHNAME-NAME
, PATHNAME-TYPE
, PATHNAME-VERSION
pathname-host
pathname &key
case => host
pathname-device
pathname &key
case => device
pathname-directory
pathname &key
case => directory
pathname-name
pathname &key
case => name
pathname-type
pathname &key
case => type
pathname-version
pathname => version
pathname - パス名指定子
case - :common
か:local
のうちのひとつ。デフォルトは:local
です。
host - 有効なパス名のホスト。
device - 有効なパス名のデバイス。
directory - 有効なパス名のディレクトリ。
name - 有効なパス名の名前。
type - 有効なパス名の型。
version - 有効なパス名のバージョン。
これらの関数はpathnameの要素を返却します。
もしpathname指定子がパス名(おそらくストリームの誤字)のとき、 それはオープンされているファイルによって使用されている名前が表現されます。 これはおそらく、要求はされていませんが、 実際のファイルの名前です。
もしcaseが指定されたとき、 それは19.2.2.1.2. パス名の要素の大文字小文字の説明のように扱われます。
(setq q (make-pathname :host "KATHY"
:directory "CHAPMAN"
:name "LOGIN" :type "COM"))
=> #P"KATHY::[CHAPMAN]LOGIN.COM"
(pathname-host q) => "KATHY"
(pathname-name q) => "LOGIN"
(pathname-type q) => "COM"
;; 名前文字列を使用するため、例で示した結果が唯一の可能な結果で
;; あるとは限りません。名前文字列の表現からパス名表現へのマッピングは、
;; 関係するファイルシステムと実装の両方に依存します(同じファイルシステムを
;; 操作できる実装が複数存在し、それらの実装はすべての詳細について合意する
;; 制約がないため)。名前文字列がどのように扱われるかについての
;; 具体的な情報は、各実装のドキュメントを参照してください。
;; VMS
(pathname-directory (parse-namestring "[FOO.*.BAR]BAZ.LSP"))
=> (:ABSOLUTE "FOO" "BAR")
(pathname-directory (parse-namestring "[FOO.*.BAR]BAZ.LSP") :case :common)
> (:ABSOLUTE "FOO" "BAR")
;; Unix
(pathname-directory "foo.l") => NIL
(pathname-device "foo.l") => :UNSPECIFIC
(pathname-name "foo.l") => "foo"
(pathname-name "foo.l" :case :local) => "foo"
(pathname-name "foo.l" :case :common) => "FOO"
(pathname-type "foo.l") => "l"
(pathname-type "foo.l" :case :local) => "l"
(pathname-type "foo.l" :case :common) => "L"
(pathname-type "foo") => :UNSPECIFIC
(pathname-type "foo" :case :common) => :UNSPECIFIC
(pathname-type "foo.") => ""
(pathname-type "foo." :case :common) => ""
(pathname-directory (parse-namestring "/foo/bar/baz.lisp") :case :local)
=> (:ABSOLUTE "foo" "bar")
(pathname-directory (parse-namestring "/foo/bar/baz.lisp") :case :local)
=> (:ABSOLUTE "FOO" "BAR")
(pathname-directory (parse-namestring "../baz.lisp"))
=> (:RELATIVE :UP)
(PATHNAME-DIRECTORY (PARSE-NAMESTRING "/foo/BAR/../Mum/baz"))
=> (:ABSOLUTE "foo" "BAR" :UP "Mum")
(PATHNAME-DIRECTORY (PARSE-NAMESTRING "/foo/BAR/../Mum/baz") :case :common)
=> (:ABSOLUTE "FOO" "bar" :UP "Mum")
(PATHNAME-DIRECTORY (PARSE-NAMESTRING "/foo/*/bar/baz.l"))
=> (:ABSOLUTE "foo" :WILD "bar")
(PATHNAME-DIRECTORY (PARSE-NAMESTRING "/foo/*/bar/baz.l") :case :common)
=> (:ABSOLUTE "FOO" :WILD "BAR")
;; Symbolics LMFS
(pathname-directory (parse-namestring ">foo>**>bar>baz.lisp"))
=> (:ABSOLUTE "foo" :WILD-INFERIORS "bar")
(pathname-directory (parse-namestring ">foo>*>bar>baz.lisp"))
=> (:ABSOLUTE "foo" :WILD "bar")
(pathname-directory (parse-namestring ">foo>*>bar>baz.lisp") :case :common)
=> (:ABSOLUTE "FOO" :WILD "BAR")
(pathname-device (parse-namestring ">foo>baz.lisp")) => :UNSPECIFIC
実装とホストファイルシステム。
最初の引数がパス名でないときは
型type-error
のエラーを通知するべきです。
pathname
,
logical-pathname
,
20.1. ファイルシステムの説明,
19.1.2. ファイル名としてのパス名
なし。