Next: , Previous: , Up: Files   [Contents][Index]


24.10 Creating, Copying and Deleting Directories

Emacs Lispのファイル操作関数のほとんどは、ディレクトリーであるようなファイルに使用されたときはエラーとなります。たとえば、delete-fileでディレクトリーの削除はできません。以下のスペシャルカは、ディレクトリーの作成と削除を行うために存在します。

Command: make-directory dirname &optional parents

このコマンドは、dirnameという名前のディレクトリーを作成する。parentsが非nilの場合(インタラクティブな呼び出しでは、常に非nilとなる)、その親ディレクトリーがまだ存在しなければ、最初にそれを作成することを意味する。

mkdirは、これにたいするエイリアスである。

Command: copy-directory dirname newname &optional keep-time parents copy-contents

このコマンドは、dirnameという名前のディレクトリーを、newnameにコピーする。newnameが既存のディレクトリーの場合、dirnameはそれのサブディレクトリーにコピーされるだろう。

これは、常にコピーされるファイルのファイルモードを、対応する元のファイルモードに一致させる。

3つ目の引数keep-timeが非nilの場合は、コピーされるファイルの修正時刻を保持することを意味する。プレフィックス引数を与えると、keep-timeが非nilになる。

4つ目の引数parentsは、親ディレクトリーが存在しない場合に作成するかどうかを指定する。インタラクティブな場合、これはデフォルトで発生する。

5つ目の引数copy-contentsが非nilの場合、それはnewnameが既存のディレクトリーならば、そのサブディレクトリーとしてdirnameをコピーするかわりに、dirnameのコンテンツをnewnameにコピーする。

Command: delete-directory dirname &optional recursive trash

このコマンドは、dirnameという名前のディレクトリーを削除する。関数delete-fileはディレクトリーであるようなファイルにたいしては機能しない。それらにたいしては、delete-directoryを使用しなければならない。recursivenilで、ディレクトリー内にファイルが存在する場合、delete-directoryはエラーをシグナルする。

delete-directoryは、親ディレクトリーの階層のシンボリックリンクだけをフォローする。

オプション引数trashが非nil、かつ変数delete-by-moving-to-trashが非nilの場合、このコマンドはファイルを削除するかわりに、システムのTrash(ゴミ箱)にファイルを移動する。Miscellaneous File Operations in The GNU Emacs Manualを参照のこと。インタラクティブに呼び出された際は、プレフィックス引数がない場合trasht、それ以外はnilである。