Previous: Extended Attributes, Up: Information about Files [Contents][Index]
このセクションではディレクトリーのリスト(パス(path))からファイルを検索したり、標準の実行可能ファイル用ディレクトリーから実行可能ファイルを検索する方法を説明します。
ユーザー固有の設定ファイル(configuration file)の検索についてはStandard File Namesの関数locate-user-emacs-file
を参照してください。
この関数はpathで与えられるディレクトリーリスト内でfilenameという名前のファイルを検索して、suffixes内のサフィックスの検索を試みる。そのようなファイルが見つかったらファイルの絶対ファイル名(Relative File Namesを参照)、それ以外はnil
をリターンする。
オプション引数suffixesは検索時にfilenameに追加するファイル名サフィックスのリストを与える。locate-file
は検索するディレクトリーごとにそれらのサフィックスを試みる。suffixesがnil
や("")
なら、サフィックスなしでfilenameだけがそのまま使用される。suffixesの典型的な値はexec-suffixes
(Subprocess Creationを参照)、load-suffixes
、load-file-rep-suffixes
、および関数get-load-suffixes
(Load Suffixesを参照)。
実行可能プログラムを探すときはexec-path
(Subprocess Creationを参照)、Lispファイルを探すときはload-path
(Library Searchを参照)がpathの典型的な値である。filenameが絶対ファイル名ならpathの効果はないが、サフィックスにたいするsuffixesは依然として試行される。
オプション引数predicateが非nil
なら、それは候補ファイルが適切かどうかテストする述語関数を指定する。述語関数には単一の引数として候補ファイル名が渡される。predicateがnil
か省略なら述語としてfile-readable-p
を使用する。file-executable-p
やfile-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にはexecutable
、readable
、writable
、exists
、またはこれらシンボルの1つ以上のリストも指定できる。
この関数はprogramという名前の実行可能ファイルを検索して、その実行可能ファイルの絶対ファイル名と、もしあればファイル名の拡張子も含めてリターンする。ファイルが見つからなければnil
をリターンする。この関数はexec-path
内のすべてのディレクトリーを検索して、exec-suffixes
内のすべてのファイル名拡張子の検索も試みる(Subprocess Creationを参照)。
remoteがnil
、かつ非default-directory
がリモートディレクトリーなら、programは各リモートホスト上で検索される。