Next: , Previous: Information about Files, Up: Information about Files


24.6.1 参照可能性の検査

これらの関数は、特別な方法でファイル参照のパーミッションを検査します。

— Function: file-exists-p filename

ファイルfilenameが存在すれば、この関数はtを返す。 これは必ずしもファイルを読めることは意味せず、 単にファイルの属性を調べられるだけである。 (UNIXでは、ファイルが存在し、かつ、 それを収めたディレクトリに対する実行パーミッションがあれば、 ファイル自体のパーミッションに関係なくこのようになる。)

ファイルが存在しなかったり、ファイルの属性を探す権限がなければ、 この関数はnilを返す。

— Function: file-readable-p filename

ファイルfilenameが存在しそれを読むことができるならば、 この関数はtを返す。 さもなければnilを返す。

          (file-readable-p "files.texi")
               ⇒ t
          (file-exists-p "/usr/spool/mqueue")
               ⇒ t
          (file-readable-p "/usr/spool/mqueue")
               ⇒ nil
— Function: file-executable-p filename

ファイルfilenameが存在しそれを実行できるならば、 この関数はtを返す。 さもなければnilを返す。 ファイルがディレクトリである場合、実行パーミッションは、 ディレクトリ内のファイルの存在やその属性を検査でき、 それらのファイルのモードが許せばオープンできることを意味する。

— Function: file-writable-p filename

ファイルfilenameに書き出したり作成できるならば、 この関数はtを返し、さもなければnilを返す。 ファイルに書き出せるのは、ファイルが存在し書ける場合である。 作成できるのは、ファイルは存在しないが 指定したディレクトリが存在しそのディレクトリに書ける場合である。

以下の3番目の例では、fooの親ディレクトリが存在しないので、 たとえディレクトリを作成できるとしてもfooは書けない。

          (file-writable-p "~/foo")
               ⇒ t
          (file-writable-p "/foo")
               ⇒ nil
          (file-writable-p "~/no-such-dir/foo")
               ⇒ nil
— Function: file-accessible-directory-p dirname

ディレクトリdirnameの既存ファイルをオープンするパーミッションがあれば、 この関数はtを返す。 さもなければ(あるいは当該ディレクトリが存在しなければ)nilを返す。 dirnameの値はディレクトリ名である。

例: つぎの例では、

          (file-accessible-directory-p "/foo")
               ⇒ nil

から、/foo/内のファイルを読もうとすると エラーになると推論できる。

— Function: access-file filename string

この関数は、ファイルfilenameを読むためにオープンし、 クローズしてからnilを返す。 しかし、オープンに失敗するとstringをエラーメッセージのテキストとした エラーを通知する。

— Function: file-ownership-preserved-p filename

もしファイルfilenameを削除して改めて作成しても ファイルの所有者が変更されなければ、この関数はtを返す。

— Function: file-newer-than-file-p filename1 filename2

ファイルfilename1filename2より新しければ、 この関数はtを返す。 filename1が存在しなければnilを返す。 filename2が存在しなければtを返す。

以下の例で、ファイルaug-19は19日に書かれ、 ファイルaug-20は20日に書かれ、 ファイルno-fileは存在しないと仮定する。

          (file-newer-than-file-p "aug-19" "aug-20")
               ⇒ nil
          (file-newer-than-file-p "aug-20" "aug-19")
               ⇒ t
          (file-newer-than-file-p "aug-19" "no-file")
               ⇒ t
          (file-newer-than-file-p "no-file" "aug-19")
               ⇒ nil

file-attributesを使って、 2つの数から成るリストとしてファイルの最終更新時刻を取得できる。 see File Attributes