次: , 前: File Names, 上: Files


24.9 ディレクトリの内容

ディレクトリは、さまざまな名前で入れた別のファイルを 収めているファイルの一種です。 ディレクトリは、ファイルシステムの機能です。

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

— 機能: directory-files directory &optional full-name match-regexp nosort

この関数は、ディレクトリdirectory内の ファイルの名前から成るリストを返す。 デフォルトでは、リストはアルファベット順になる。

full-namenil以外であると、 関数はファイルの絶対ファイル名を返す。 さもなければ、指定したディレクトリに対する相対名を返す。

match-regexpnil以外であると、 この関数は正規表現match-regexpに一致するファイル名のみを返す。 つまり、他の名前のファイルはリストから除かれる。

nosortnil以外であると、 directory-filesはリストをソートしないので、 ファイル名の順番に規則はない。 処理速度を最大にしてファイルの処理順序に拘らないならば、これを用いる。 処理順序がユーザーに見える場合には、 ソートしたほうがユーザーは幸せであろう。

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

directoryが読めないディレクトリの名前であるとエラーを通知する。

— 機能: file-name-all-versions file dirname

この関数は、ディレクトリdirname内のfileという名前の ファイルのすべての版から成るリストを返す。

— 機能: insert-directory file switches &optional wildcard full-directory-p

この関数は、lsswitchesを渡して表示した ディレクトリfileの一覧を(カレントバッファに)挿入する。 ポイントは挿入したテキストのうしろに置かれる。

引数fileは、ディレクトリ名であるか ワイルドカードを含んだファイル指定である。 wildcardnil以外であると、 fileをワイルドカードを含むファイル指定として扱う。

full-directory-pnil以外であると、 ディレクトリ一覧はディレクトリの全内容を表すと仮定することを意味する。 fileがディレクトリでありswitchesに`-d'を含まない場合には、 tを指定すべきである。 (lsのオプション`-d'は、 ディレクトリの内容ではなく、ファイルとしてのディレクトリ自身を 表示することを意味する。)

この関数は、変数insert-directory-programで指定される 名前のディレクトリ表示プログラムを実行して動作する。 wildcardnil以外であると、 ワイルドカードを展開するためにshell-file-nameで指定される シェルを実行する。

— 変数: insert-directory-program

この変数の値は、関数insert-directoryで ディレクトリ一覧を生成するために実行するプログラムである。