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",
"Q:>sys>chem>lead.text.1",
#P"Q:>sys>chem>gold.text.1" #P
なし。
もし名前の変更処理が成功しなかったときは、 型file-error
のエラーが発生します。
もしfilespecがワイルドカードを含んでいたときは、 型file-error
のエラーが発生するかもしれません。
truename
, pathname
, logical-pathname
, 20.1. ファイルシステムの説明, 19.1.2. ファイル名としてのパス名
なし。