この節では、ディレクトリの一覧(パス)からファイルを検索する方法や、標準的な実行可能ファイルディレクトリの一覧から実行可能ファイルを検索する方法について説明します。
ユーザー固有の設定ファイルを検索するには、locate-user-emacs-file 関数に関する
標準ファイル名 を参照してください。
この関数は、path で指定されたディレクトリ一覧の中から、ファイル名が filename であるファイルを、suffixes
のサフィックスを用いて検索します。該当するファイルが見つかった場合は、そのファイルの絶対ファイル名(絶対ファイル名と相対ファイル名 を参照)を返し、見つからなかった場合は
nil を返します。
オプション引数 suffixes は、検索時に filename に付加するファイル名サフィックスのリストを指定します。locate-file は、これらの各サフィックスを用いて考えられるすべてのディレクトリを探索します。suffixes が nil または ("") である場合、サフィックスは指定されず、filename はそのまま使用されます。suffixes
の代表的な値には、exec-suffixes(サブプロセスを作成する関数を参照)、load-suffixes、load-file-rep-suffixes、および関数 get-load-suffixes の戻り値(サフィックスの読み込みを参照)があります。
path の代表的な値は、実行可能プログラムを探す場合は exec-path(サブプロセスを作成する関数 を参照)、Lisp ファイルを探す場合は load-path(ライブラリ検索 を参照)です。filename が絶対指定の場合、path
は効果を持ちませんが、suffixes のサフィックスは引き続き試行されます。
オプション引数 predicate が nil
以外の場合、候補ファイルが適切かどうかを判定するための述語関数を指定します。この述語には、唯一の引数として候補ファイル名が渡されます。predicate が nil
であるか、または省略されている場合、locate-file は file-readable-p を述語として使用します。file-executable-p や file-directory-p など、その他の有用な述語については、ファイル種類の区別 を参照してください。
この関数は通常ディレクトリをスキップするため、ディレクトリを検出させたい場合は、predicate
関数がそれらに対して dir-ok を返すようにしてください。例えば:
(locate-file "html" '("/var/www" "/srv") nil
(lambda (f) (if (file-directory-p f) 'dir-ok)))
互換性のため、predicate は executable、readable、writable、exists
のいずれかの記号、またはこれらの記号を1つ以上並べたリストであることもできます。
この関数は、指定された program
の実行可能ファイルを検索し、ファイル拡張子(もしあれば)を含む実行可能ファイルの絶対ファイル名を返します。ファイルが見つからない場合は nil を返します。この関数は exec-path
内のすべてのディレクトリを検索し、exec-suffixes
にあるすべてのファイル拡張子を試します(サブプロセスを作成する関数を参照してください)。
remote が nil 以外で、default-directory がリモートディレクトリの場合、program は対応するリモートホスト上で検索されます。