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


24.9 Contents of Directories

ディレクトリーとはファイルの一種で、さまざまな名前のファイルを含んでいます。ディレクトリーは、ファイルシステムの機能です。

Emacsはディレクトリー内のファイル名をLispのリストとして一覧したり、シェルコマンドlsを使用してバッファー内にファイル名を表示することができます。後者の場合、Emacsはオプションで各ファイルに関する情報も表示でき、それはlsコマンドに渡すオプションに依存します。

Function: directory-files directory &optional full-name match-regexp nosort

この関数は、ディレクトリーdirectory内のファイルの名前のリストをリターンする。デフォルトでは、このリストはアルファベット順である。

full-nameが非nilの場合、この関数はファイルの絶対ファイル名をリターンし、それ以外は指定されたディレクトリーにたいする相対ファイル名をリターンする。

match-regexpが非nilの場合、この関数はその正規表現にたいするマッチを含むファイル名だけをリターンし、それ以外のファイル名はリストから除外される。大文字小文字を区別するファイルシステムでは、大文字小文字を区別する正規表現マッチングが行われる。

nosortが非nilの場合、directory-filesはリストをソートしないので、取得するファイル名に特定の順序はない。最大限の可能なスピードを得る必要があり、ファイル処理順を気にしない場合は、この関数を使用する。ユーザーから処理順が可視の場合は、名前をソートすれば、おそらくユーザーはより幸せになるだろう。

(directory-files "~lewis")
     ⇒ ("#foo#" "#foo.el#" "." ".."
         "dired-mods.el" "files.texi"
         "files.texi.~1~")

directoryが読み取り可能なディレクトリー名でない場合は、エラーがシグナルされる。

Function: directory-files-and-attributes directory &optional full-name match-regexp nosort id-format

これは、どのファイルを報告するか、およびファイル名を報告する方法において、directory-filesと似ている。しかし、この関数はファイル名のリストをリターンするかわりに、各ファイルごとにリスト(filename . attributes)をリターンする。ここでattributesは、そのファイルにたいしてfile-attributesがリターンするであろう値である。オプション引数id-formatは、file-attributesの対応する引数と同じ意味をもつ(Definition of file-attributesを参照)。

Function: file-expand-wildcards pattern &optional full

この関数は、ワイルドカードパッケージpatternを展開して、それにマッチするファイル名のリストをリターンする。

絶対ファイル名としてpatternが記述された場合は、値も絶対ファイル名になる。

patternが相対ファイル名で記述されている場合、それはカレントデフォルトディレクトリーにたいして相対的に解釈される。リターンされるファイル名も、通常はカレントデフォルトディレクトリーにたいする相対ファイル名になる。しかしfullが非nilの場合は、絶対ファイル名がリターンされる。

Function: insert-directory file switches &optional wildcard full-directory-p

この関数は、lsswitchesに対応するフォーマットで、(カレントバッファー内に)ディレクトリーfileのディレクトリーリストを挿入する。これは、挿入したテキストの後にポイントを残す。switchesにはオプション文字列、または個別のオプションを表す文字列リストを指定できる。

引数fileにはディレクトリー名、またはワイルドカード文字を含むファイル名を指定できる。wildcardが非nilの場合、fileはワイルドカードを伴うファイル指定として扱われることを意味する。

full-directory-pが非nilの場合、ディレクトリーリストにたいしてディレクトリーの完全なコンテンツ表示を要求することを意味する。fileがディレクトリーで、スイッチに‘-d’が含まれないときは、tを指定するべきである(lsへのオプション‘-d’は、ディレクトリーのコンテンツではなく、ファイルとしてディレクトリーを表示するよう指定する)。

ほとんどのシステムでは、この関数は変数insert-directory-programの名前のディレクトリーリスト用プログラムを実行することにより機能する。wildcardが非nilの場合は、ワイルドカード展開するために、shell-file-nameで指定されるシェルの実行も行う。

MS-DOSおよびMS-Windowsシステムは、標準的なUnixプログラムlsを欠くので、この関数はLispコードでlsをエミュレートする。

技術的な詳細としては、switchesにロングオプション‘--dired’が含まれる際にinsert-directoryは、diredのためにこれを特別に扱う。しかし他のオプションと同様、通常は等価なショートオプション‘-D’が単にinsert-directory-programに渡されるだけである。

Variable: insert-directory-program

この変数の値は、関数insert-directory用にディレクトリーリストを生成するプログラムである。この値は、Lispコードでリストを生成するシステムでは無視される。