Function RENAME-FILE

UP


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を許可していないものに対して filespecnilが含まれているか、 あるいはファイルシステムが要素に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. ファイル名としてのパス名

備考

なし。


TOP, Github