アプリケーション開発をしていると、画像を読み込んだりリンクをはって次のページへ移動させたいときに、そのファイルの位置を指定するためにパスという指定方法を使います。
ここではファイルやディレクトリの位置を指定するときに使う、絶対パスと相対パスの意味や書き方を説明していきます。
記事中に出てくるルートディレクトリやカレントディレクトリの意味はこちらの記事に書きました。
パスとは?
絶対パスや相対パスについて説明する前に、まずそもそもパスとは何かという話から。
パス(path)は英語で「小道」や「方向」という意味になります。
アプリケーション開発では、ファイルやディレクトリの位置のことを指しています。
パソコン上ではフォルダを作成して、そのフォルダの中にさらにフォルダを作成し、その中にファイルを保存する、といったことをよくやりますよね。
プログラム中では保存したファイルを読み込んだり、特定のファイルへリンクをはったりすることがあるときに、パスを使って保存されているファイルの位置をパスを使って指定するわけです。
そして、パスの指定方法は 絶対パスと相対パスの2種類あります。
絶対パスとは?
絶対パスは、階層の一番上(ルートディレクトリ)からファイルやディレクトリの位置を指定する方法です。
住所に例えてみると、ちょうど「東京都渋谷区○○町××丁目」と県名から順番に指定していくイメージと近いです。
例えば以下のように、「フォルダA」の中に「フォルダB」があって、その中に「ファイル1」があるディレクトリ構造になっていたとします。
ファイル1を絶対パスで指定する場合は、以下のように書きます。
/フォルダA/フォルダB/ファイル1
ちなみに、一番上の階層(ルートディレクトリ)を指定する場合は以下のように表します。
/
このルートディレクトリを起点にして、ファイルやフォルダの場所を表すのが絶対パスです。
相対パスとは?
相対パスは、現在の作業中のフォルダ(カレントディレクトリ)から、ファイルやディレクトリの位置を指定する方法です。
住所に例えてみると、ちょうど「ここから2軒 右隣り」と現在地から見た道筋を指定していくイメージと近いです。
さっきと同じように、「フォルダA」の中に「フォルダB」があって、その中に「ファイル1」があるディレクトリ構造で考えてみましょう。
そして現在のカレントディレクトリ(現在の作業中の位置)はフォルダAとします。
まず、現在の位置(カレントディレクトリ)を相対パスで表す場合は、以下のように書きます。
./
そして、ファイル1を相対パスで指定する場合は、以下のように書きます。
./フォルダB/ファイル1
今度は少しファイル構成を変えて、一番上の階層(ルートディレクトリ)に「フォルダC」と「ファイル2」があって、さらにフォルダCの中には「フォルダD」と「ファイル3」があったとします。
現在の作業中の位置(カレントディレクトリ)は、フォルダDとします。
この状態で、ひとつ上の階層であるフォルダCを指定してみましょう。以下のように書くことができます。
../
そして、ファイル3を相対パスで表す場合は、以下のように書きます。
../ファイル3
次にファイル2を指定してみます。
../../ファイル2
../
を2つ繋げることで、2階層 上のフォルダ(ディレクトリ)を表すことができました。
まとめ
以上、絶対パスと相対パスの意味と書き方でした!
ここまでの内容をまとめておきます。
- 絶対パスは、ルートディレクトリを起点にして表すファイルやディレクトリの場所。
- 相対パスは、カレントディレクトリを起点にして表すファイルやディレクトリの場所。
- 絶対パスはカレントディレクトリがどこであっても変わらないけど、相対パスはカレントディレクトリを移動すると変わる。