npt-japanese

% Function NAMESTRING, FILE-NAMESTRING, DIRECTORY-NAMESTRING, HOST-NAMESTRING, ENOUGH-NAMESTRING

UP


Function NAMESTRING, FILE-NAMESTRING, DIRECTORY-NAMESTRING, HOST-NAMESTRING, ENOUGH-NAMESTRING

Function NAMESTRING, FILE-NAMESTRING, DIRECTORY-NAMESTRING, HOST-NAMESTRING, ENOUGH-NAMESTRING

構文

namestring pathname => namestring
file-namestring pathname => namestring
directory-namestring pathname => namestring
host-namestring pathname => namestring
enough-namestring pathname &optional defaults => namestring

引数と戻り値

pathname - パス名指定子
defaults - パス名指定子。 デフォルトは*default-pathname-defaults*の値です。
namestring - 文字列か、nil

定義

これらの関数はpathnameを名前文字列に変換します。 pathnameによって表現される名前は、 実装依存の基準のフォームに従った 名前文字列として返却されます。

namestringは、pathnameの完全なフォームを返却します。

file-namestringは、 pathnameの名前とタイプとバージョンの要素だけを返却します。

directory-namestringは、 pathnameのディレクトリの名前の部分を返却します。

host-namestringは、ホスト名を返却します。

enough-namestringは、 pathnamedefaultsから相対的に考慮されたものによって、 同一と見なせるのに十分なファイル名である 省略された名前文字列を返却します。 これは、全ての場合において次のような関係を要求します。

(merge-pathnames (enough-namestring pathname defaults) defaults)
==  (merge-pathnames (parse-namestring pathname nil defaults) defaults)

enough-namestringの結果は、 このような基準を満たした最も短い適切な文字列です。

この3つの短い名前文字列をある順にて結合することによって 有効な名前文字列を生成することは必ずしも可能ではありません。

例文

(namestring "getty")            
=>  "getty"
(setq q (make-pathname :host "kathy" 
                        :directory 
                          (pathname-directory *default-pathname-defaults*)
                        :name "getty")) 
=>  #S(PATHNAME :HOST "kathy" :DEVICE NIL :DIRECTORY directory-name 
      :NAME "getty" :TYPE NIL :VERSION NIL)
(file-namestring q) =>  "getty"
(directory-namestring q) =>  directory-name
(host-namestring q) =>  "kathy" 
;;; Unix構文の使用とこの例での特定のUnixバージョンによる
;;; ワイルドカード表記の使用によって作成されたもの
(namestring
  (translate-pathname "/usr/dmr/hacks/frob.l"
                      "/usr/d*/hacks/*.l"
                      "/usr/d*/backup/hacks/backup-*.*"))
>  "/usr/dmr/backup/hacks/backup-frob.l"
(namestring
  (translate-pathname "/usr/dmr/hacks/frob.l"
                      "/usr/d*/hacks/fr*.l"
                      "/usr/d*/backup/hacks/backup-*.*"))
=>  "/usr/dmr/backup/hacks/backup-ob.l"

;;; これは上記の例に似ていますが2つの違ったホストを使用しています。
;;; UがUnixであり、VがVMSです。ファイルタイプの変換と
;;; アルファベットの大文字小文字の表記に注意してください。
(namestring
  (translate-pathname "U:/usr/dmr/hacks/frob.l"
                      "U:/usr/d*/hacks/*.l"
                      "V:SYS$DISK:[D*.BACKUP.HACKS]BACKUP-*.*"))
=>  "V:SYS$DISK:[DMR.BACKUP.HACKS]BACKUP-FROB.LSP"
(namestring
  (translate-pathname "U:/usr/dmr/hacks/frob.l"
                      "U:/usr/d*/hacks/fr*.l"
                      "V:SYS$DISK:[D*.BACKUP.HACKS]BACKUP-*.*"))
=>  "V:SYS$DISK:[DMR.BACKUP.HACKS]BACKUP-OB.LSP"

影響

なし。

例外

なし。

参考

truename, merge-pathnames, pathname, logical-pathname, 20.1. ファイルシステムの説明, 19.1.2. ファイル名としてのパス名

備考

なし。


TOP, Github