Next: Kinds of Files, Previous: Information about Files, Up: Information about Files
これらの関数は、特別な方法でファイル参照のパーミッションを検査します。
ファイルfilenameが存在すれば、この関数は
t
を返す。 これは必ずしもファイルを読めることは意味せず、 単にファイルの属性を調べられるだけである。 (UNIXでは、ファイルが存在し、かつ、 それを収めたディレクトリに対する実行パーミッションがあれば、 ファイル自体のパーミッションに関係なくこのようになる。)ファイルが存在しなかったり、ファイルの属性を探す権限がなければ、 この関数は
nil
を返す。
ファイルfilenameが存在しそれを読むことができるならば、 この関数は
t
を返す。 さもなければnil
を返す。(file-readable-p "files.texi") t (file-exists-p "/usr/spool/mqueue") t (file-readable-p "/usr/spool/mqueue") nil
ファイルfilenameが存在しそれを実行できるならば、 この関数は
t
を返す。 さもなければnil
を返す。 ファイルがディレクトリである場合、実行パーミッションは、 ディレクトリ内のファイルの存在やその属性を検査でき、 それらのファイルのモードが許せばオープンできることを意味する。
ファイルfilenameに書き出したり作成できるならば、 この関数は
t
を返し、さもなければnil
を返す。 ファイルに書き出せるのは、ファイルが存在し書ける場合である。 作成できるのは、ファイルは存在しないが 指定したディレクトリが存在しそのディレクトリに書ける場合である。以下の3番目の例では、fooの親ディレクトリが存在しないので、 たとえディレクトリを作成できるとしてもfooは書けない。
(file-writable-p "~/foo") t (file-writable-p "/foo") nil (file-writable-p "~/no-such-dir/foo") nil
ディレクトリdirnameの既存ファイルをオープンするパーミッションがあれば、 この関数は
t
を返す。 さもなければ(あるいは当該ディレクトリが存在しなければ)nil
を返す。 dirnameの値はディレクトリ名である。例: つぎの例では、
(file-accessible-directory-p "/foo") nilから、/foo/内のファイルを読もうとすると エラーになると推論できる。
この関数は、ファイルfilenameを読むためにオープンし、 クローズしてから
nil
を返す。 しかし、オープンに失敗するとstringをエラーメッセージのテキストとした エラーを通知する。
もしファイルfilenameを削除して改めて作成しても ファイルの所有者が変更されなければ、この関数は
t
を返す。
ファイルfilename1がfilename2より新しければ、 この関数は
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。