本節の目的
コンピュータ上でのフォルダやファイルを一意に特定する方法として、絶対パス(絶対参照)と相対パス(相対参照)について習得します。
ファイルの場所と名前を指定するには?
下の図は、あるパソコンのドライブの内容を表示したものです。
このドライブの内容を一覧しやすいように、模式的に書き直したのが下の図です。ファイルとフォルダの区別がつくよう、フォルダの名前には最後に「/」を付けてあります。この図から分かるように、フォルダを使ってファイルを整理すると、ファイルを指定するにはファイル自身の名前だけでは足りないことに気づきます。例えば、「week12」フォルダと「week13」フォルダは両方とも中に「memo.txt」というファイルをもっていますが、この2つのファイルは別のものです。
そこで、コンピュータに保存されたファイルを正確に指定する時は、「ファイルの保存場所」と「ファイル自身の名前」を組み合わせて表現します。 例えば、先ほどのmemo.txtファイルを日本で誤解無く表現しようとすると、
「UドライブにあるkisoAフォルダの中にあるweek12フォルダの中のmemo.txt」
と言えば、「week13フォルダの中のmemo.txt」と区別がつきます。ここまで正確に表現しておけば、もし他のフォルダの中にmemo.txtというファイルがあっても、もう他のファイルと区別がつかなくなることはありません。
これでアイディアの説明は終わりです。次は、「ファイルの場所」の書き方を説明します。
絶対パス(絶対参照)と相対パス(相対参照)によるファイルの特定
ファイルの場所を指定するには、
- 絶対パス (絶対参照)
- 相対パス (相対参照)
の2つの方法があります。
Windowsで普段作業している時は「絶対パス」を使うことがほとんどですが、HTML文書のハイパーリンクのように「あるファイルから他のファイルを参照する」という場面では「相対パス」がよく用いられます。
ここでの「パス」は、「試験をパスした」ときに使う「pass」ではなく、道や経路を表わす「path」です。つまり、目的のファイルやフォルダを明確に示す(参照する)ための「経路」あるいは「道筋」のことです。
それでは、下の図に示すフォルダ・ファイルを例に説明していきます。
絶対パス(絶対参照)による指定
絶対パスによる指定では、ファイルの場所を表すのに「根元のフォルダを起点にして、対象のファイルにたどり着くまで通るフォルダの名前を順に書く」という方法を用います。
根元のフォルダは「ルートフォルダ」もしくは「ルートディレクトリ」と呼び、「/」(スラッシュ)の記号で表します。絶対パスでは、ルートフォルダを表す「/」を先頭に書き、その後に続けてフォルダの名前を「/」で区切って書きます。
例えば、下の図では黄色のex1.htmlファイルは絶対パスで「/public_html/w04/ex1.html」と表されます。
絶対パス表記と上記の日本語を、改めて対応させると以下のようになります。
絶対パス表記中の要素 | 意 味 |
---|---|
/ | ルートディレクトリの下 (中) にある... |
public_html/ | public_htmlフォルダの下 (中) にある... |
w04/ | w04というフォルダの下 (中) にある... |
ex1.html | ex1.html |
相対パス(相対参照)による指定
相対パスによる指定ではファイルの場所を表すのに「あるフォルダを出発点にして、対象のファイルにたどり着くまで通るフォルダの名前を順に書く」という方法を用います。相対パスでは基準点のフォルダを「.」で表し、「一つ上のフォルダ」を「..」で表します。
例えば、下の図で緑色のex1.htmlファイルから黄色のex1.htmlファイルを参照する時の相対パスは「./w04/ex1.html」になります。また、緑色のex1.htmlファイルから青色のt0.htmlファイルを参照する時の相対パスは「. /w04/test/t0.html」になります。少しややこしい例ですが、紫色のex1.htmlファイルから青色のt0.htmlファイルを参照する時の相対パスは「../w04/test/t0.html」になります。
緑色のex1.htmlファイルから黄色のex1.htmlファイルを参照する時の相対パス中の要素と、それらの意味を表にしてみると以下のようになります。
相対パス表記中の要素 | 意 味 |
---|---|
./ | 現在注目しているフォルダにある... |
w04/ | w04フォルダの下 (中) にある... |
ex1.html | ex1.html ファイル |
上の表の「相対パス表記中の要素」の列を上から順につないだものが「相対パスでの表記」ですし、「意味」の列を上から順に読んだものが「相対パスでの表記の意味」になります。
前の例のように紫色のex1.htmlファイルから青色のt0.htmlファイルを参照する時の相対パスの要素とそれらの意味を表にしてみると以下のようになります。
相対パス表記中の要素 | 意 味 |
---|---|
../ | 現在注目しているフォルダの上位のフォルダにある... |
w04/ | w04フォルダの下 (中) にある... |
test/ | testフォルダの下 (中) にある... |
ex1.html | ex1.html ファイル |
ファイルの特定に関するまとめ
これまでの学習で、「ex1.htmlファイル」とか「testフォルダ」のように名前を指定しただけでは、対象の特定ができないことを学び、続いてそれを解決する方法として絶対パスや相対パスがあることを学びました。絶対パスと相対パスの違いを表にまとめると次のようになります。
表記方法 | 場所の指定方法 | 表記上の相異点 | 表記例 |
---|---|---|---|
絶対パス | 存在場所をルートディレクトリから指定する | 先頭に「/」がつく | /ng.html, /public_html/test/t0.html |
相対パス | 注目しているフォルダを決め、そこを起点に指定する | 先頭に「./」もしくは「../」がつく | ./ex1.html, ./w05/ex1.html, ../images /apple.jpg, ../../dameyo/ng.html |
実は、相対パスで利用する「./」は、多くの局面で省略しても良いということになっています。
ただ、「./」を省略すると、抽象的なファイル名(フォルダ名)なのか、相対パスのファイル名なのか、場合によっては絶対パスで先頭の「/」を書き損なった書き間違いなのか、自他ともに不明瞭になります。そのため、皆さんは相対パスであることを明らかにしたいときには、省略しないように心掛けて下さい。