Next: Directory Names, Previous: File Name Components, Up: File Names [Contents][Index]
ファイルシステム内のすべてのディレクトリーは、ルートディレクトリーから開始されるツリーを形成します。このツリーのルートから開始されるすべてのディレクトリー名により、ファイル名を指定でき、それを絶対(absolute)ファイル名と呼びます。デフォルトディレクトリーからの相対的なツリー中の位置でファイルを指定するこでき、それは相対(relative)ファイル名と呼ばれます。UnixおよびGNU/Linuxでは、絶対ファイル名は‘/’または‘~’で始まり、相対ファイル名は違います(abbreviate-file-nameを参照)。MS-DOSおよびMS-Windowsでは、絶対ファイル名はスラッシュ、バックスラッシュ、またはドライブ指定‘x:/’で始まります。ここでxはドライブ文字(drive letter)です。
この関数は、filenameが絶対ファイル名の場合はt
、それ以外はnil
をリターンする。
(file-name-absolute-p "~rms/foo") ⇒ t
(file-name-absolute-p "rms/foo") ⇒ nil
(file-name-absolute-p "/user/rms/foo") ⇒ t
相対ファイル名が与えられた場合は、expand-file-name
を使用して、それを絶対ファイル名に変換できます(File Name Expansionを参照)。この関数は、絶対ファイル名を相対ファイル名に変換します:
この関数は、directory(絶対ディレクトリー名またはディレクトリーファイル名)から相対的な結果となると仮定して、filenameと等価な相対ファイル名のリターンを試みる。directoryが省略、またはnil
の場合、カレントバッファーのデフォルトディレクトリーがデフォルトとなる。
絶対ファイル名がデバイス名で始まるオペレーティングシステムが、いくつか存在する。そのようなシステムでは、2つの異なるデバイス名から開始されるfilenameは、directoryにもとづく等価な相対ファイル名をもたない。この場合、file-relative-name
は絶対形式でfilenameをリターンする。
(file-relative-name "/foo/bar" "/foo/") ⇒ "bar" (file-relative-name "/foo/bar" "/hack/") ⇒ "../foo/bar"