Previous: , Up: Information about Files   [Contents][Index]


25.6.6 標準的な場所へのファイルの配置

このセクションではディレクトリーのリスト(パス(path))からファイルを検索したり、標準の実行可能ファイル用ディレクトリーから実行可能ファイルを検索する方法を説明します。

ユーザー固有の設定ファイル(configuration file)の検索についてはStandard File Namesの関数locate-user-emacs-fileを参照してください。

Function: locate-file filename path &optional suffixes predicate

この関数はpathで与えられるディレクトリーリスト内でfilenameという名前のファイルを検索して、suffixes内のサフィックスの検索を試みる。そのようなファイルが見つかったらファイルの絶対ファイル名(Relative File Namesを参照)、それ以外はnilをリターンする。

オプション引数suffixesは検索時にfilenameに追加するファイル名サフィックスのリストを与える。locate-fileは検索するディレクトリーごとにそれらのサフィックスを試みる。suffixesnil("")なら、サフィックスなしでfilenameだけがそのまま使用される。suffixesの典型的な値はexec-suffixes (Subprocess Creationを参照)、load-suffixesload-file-rep-suffixes、および関数get-load-suffixes (Load Suffixesを参照)。

実行可能プログラムを探すときはexec-path (Subprocess Creationを参照)、Lispファイルを探すときはload-path (Library Searchを参照)がpathの典型的な値である。filenameが絶対ファイル名ならpathの効果はないが、サフィックスにたいするsuffixesは依然として試行される。

オプション引数predicateが非nilなら、それは候補ファイルが適切かどうかテストする述語関数を指定する。述語関数には単一の引数として候補ファイル名が渡される。predicatenilか省略なら述語としてfile-readable-pを使用する。file-executable-pfile-directory-pなど、その他の有用な述語についてはKinds of Filesを参照のこと。

この関数は通常はディレクトリーをスキップするので、ディレクトリーを探したければ、predicate関数がディレクトリーにたいして確実にdir-okをリターンすること。たとえば:

(locate-file "html" '("/var/www" "/srv") nil
             (lambda (f) (if (file-directory-p f) 'dir-ok)))

互換性のためにpredicateにはexecutablereadablewritableexists、またはこれらシンボルの1つ以上のリストも指定できる。

Function: executable-find program

この関数はprogramという名前の実行可能ファイルを検索して、その実行可能ファイルの絶対ファイル名と、もしあればファイル名の拡張子も含めてリターンする。ファイルが見つからなければnilをリターンする。この関数はexec-path内のすべてのディレクトリーを検索して、exec-suffixes内のすべてのファイル名拡張子の検索も試みる(Subprocess Creationを参照)。