このセクションではディレクトリーのリスト(パス(path))からファイルを検索したり、標準の実行可能ファイル用ディレクトリーから実行可能ファイルを検索する方法を説明します。
ユーザー固有の設定ファイル(configuration file)の検索については標準的なファイル名の関数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
(ロードでの拡張子を参照)。
実行可能プログラムを探すときはexec-path
(サブプロセスを作成する関数を参照)、Lispファイルを探すときはload-path
(ライブラリー検索を参照)がpathの典型的な値である。filenameが絶対ファイル名ならpathの効果はないが、サフィックスにたいするsuffixesは依然として試行される。
オプション引数predicateが非nil
なら、それは候補ファイルが適切かどうかテストする述語関数を指定する。述語関数には単一の引数として候補ファイル名が渡される。predicateがnil
か省略なら述語として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は各リモートホスト上で検索される。