% Function RENAME-FILE
Function RENAME-FILE
rename-file
filespec new-name
=> defaulted-new-name, old-truename, new-truename
filespec - パス名指定子
new-name - ストリームではないパス名指定子
defaulted-new-name - パス名
old-truename - 物理パス名
new-truename - 物理パス名
rename-file
は、
filespecで指定されるファイルを
defaulted-new-nameという名前に変更するように、
ファイルシステムへの修正を行います。
ファイル名にワイルドカードが含まれているか、
ファイルシステムが要素にnil
を許可していないものに対して
filespecにnil
が含まれているか、
あるいはファイルシステムが要素にnil
を許可していないものに対して
filespecからnew-nameへ欠落した要素の
デフォルト値を埋め合わせた結果nil
が含まれているようなとき、
エラーになります。
もしnew-nameが論理パス名のとき、
rename-file
は第一返却値は論理パス名として返却されます。
rename-file
は成功したときは3つの値を返却します。
第一返却値defaulted-new-nameは、
new-nameを構築し欠落した要素を
merge-pathnames
処理の実行によりfilespecを用いて
デフォルト値として補完した結果の名前を返却します。
第二返却値old-truenameは、
名前の変更を行う前のファイルの実際の名前を返却します。
第三返却値new-truenameは、
名前の変更を行ったあとのファイルの実際の名前を返却します。
もしfilespecの指定子が開いたストリームのとき、 そのストリーム自身と関連付けられたファイルに 影響を及ぼします(もしファイルシステムが許容するならば)。
;; この例は論理パス名を使用します。
(with-open-file (stream "sys:chemistry;lead.text"
:direction :output :if-exists :error)
(princ "eureka" stream)
(values (pathname stream) (truename stream)))
=> #P"SYS:CHEMISTRY;LEAD.TEXT.NEWEST", #P"Q:>sys>chem>lead.text.1"
(rename-file "sys:chemistry;lead.text" "gold.text")
=> #P"SYS:CHEMISTRY;GOLD.TEXT.NEWEST",
#P"Q:>sys>chem>lead.text.1",
#P"Q:>sys>chem>gold.text.1"
なし。
もし名前の変更処理が成功しなかったときは、
型file-error
のエラーが発生します。
もしfilespecがワイルドカードを含んでいたときは、
型file-error
のエラーが発生するかもしれません。
truename
,
pathname
,
logical-pathname
,
20.1. ファイルシステムの説明,
19.1.2. ファイル名としてのパス名
なし。