Previous: , Up: ファイルの情報   [Contents][Index]


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

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

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

Function: locate-file filename path &optional suffixes predicate

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

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

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

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

この関数は通常はディレクトリーをスキップするので、ディレクトリーを探したければ、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 &optional remote

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

remotenil、かつ非default-directoryがリモートディレクトリーなら、programは各リモートホスト上で検索される。