パスの表記方法はこの2つ!絶対パスと相対パスの違いをわかりやすく解説!

IT未経験
スポンサーリンク

なぜこの2つをしっかりと理解したほうがいいの?

例えばcsvファイルのデータを読み込ませて、データ処理をするプログラミングを作りたい!といった場合があります。
その際、基本的にはパスをプログラムの中に記述しますが、参照の仕方によってプログラムの実行に大きな差が出るからです。

プログラミングでなくても、この考え方を知っていればエクスプローラーの使い方の理解にもつながります!

この記事では

  • 絶対パス、相対パスとは
  • 絶対パス、相対パスの現実に置き換えた具体例
  • 絶対パス、相対パスの違い
  • 絶対パス、相対パスのメリットデメリット

を紹介します。

まずはそれぞれのパスについてです。

スポンサーリンク

絶対パスとは

絶対パスは、ファイルやディレクトリの位置をルートディレクトリ(最上位のディレクトリ)から完全に指定するパスです。絶対パスは、どの場所からでも同じファイルやディレクトリにアクセスできるように設計されています。

絶対パスの例

  • Windows: C:\Users\Username\Documents\file.txt
  • Unix/Linux: http://home/username/documents/file.txt
ファイル?ディレクトリ?違いは?って方はこちらの記事をチェック!
ファイル・ディレクトリ・フォルダ……違いの差は?

相対パスとは

相対パスは、現在の作業ディレクトリ(カレントディレクトリ)からの位置を基準にして指定するパスです。相対パスは、現在のディレクトリに依存するため、異なる場所からアクセスすると異なる結果になることがあります。

相対パスの例

  • documents/file.txt(現在のディレクトリから見た場合)
  • ../file.txt(親ディレクトリにあるファイルを指す場合)

もっとパスを感覚的に理解したい!

ここまで読んで、わかりそうで分からないって方必見!次は現実世界の例で示してみます。

あなたが大きなオフィスビルにいると想像してください。このビルにはいくつかのフロアがあり、それぞれのフロアには複数の部屋があります。あなたのオフィスは3階にあり、部屋番号は305です。

絶対パスの例

絶対パスは、ビルの入り口からあなたのオフィスまでの道順を完全に指定するものです。例えば

  • 「ビルの入り口からエレベーターに乗って3階に行き、305号室に入る」
    //ビルの入り口/エレベーター/3階/305号室 

絶対パスは、ビルの入り口から目的地までの完全な道順を示すものです。

相対パスの例

相対パスは、現在の位置から目的地までの道順を指定するものです。例えば、あなたがすでに3階にいる場合

  • 「305号室に行く」:これは同じフロア内の部屋を指す相対パスです。
    ./305号室
  • 「1階上の部屋に行く」:これは現在のフロアから1階上のフロアにある部屋を指します。
    ../4階/402号室

相対パスは、現在の位置から目的地までの相対的な道順を示すものです。

絶対パスと相対パスの違いまとめ

絶対パスと相対パスの違いを簡単にまとめますね。

絶対パス

  • 定義: ファイルやディレクトリの完全な位置を示すパス。
  • /home/user/documents/file.txt や C:\Users\User\Documents\file.txt
  • 特徴: どの場所からでも同じパスでアクセス可能。

相対パス

  • 定義: 現在の作業ディレクトリからの位置を示すパス。
  • documents/file.txt や ..\file.txt
  • 特徴: 現在のディレクトリに依存するため、異なる場所からは異なるパスになる可能性がある。

どちらも使い方によって便利さが異なりますが、絶対パスは一貫性があり、相対パスは柔軟性があります。

プログラミング視点のメリット・デメリット

違いについてはなんとなく理解できたでしょうか。
ここからはプログラミング視点で、それぞれのパスのメリット・デメリットについてお話しします!

絶対パス

メリット

  1. 一貫性: どの場所からでも同じファイルやディレクトリにアクセスできるため、一貫した参照が可能です。
  2. 明確性: ファイルやディレクトリの位置が明確に指定されるため、誤解が生じにくいです。
わかりやすくていいですよね。わたしはこれだけ使えばいいと思っていました。

デメリット

  1. 可搬性の低さ: 絶対パスは特定のシステムや環境に依存するため、他の環境に移動するときにパスを変更する必要があります。
  2. 冗長性: パスが長くなることがあり、コードが読みづらくなることがあります。
毎回パスを書き換えるのはめんどくさいですよね。また、プログラムにおいて長ったらしいコードは理解に時間がかかりますし、ちょっとしたバグの温床にもなります。

相対パス

メリット

  1. 可搬性: プロジェクト内での移動に強く、異なる環境でも動作しやすいです。
  2. 簡潔さ: パスが短くなることが多く、コードが読みやすくなります。
コピペをするだけでほかの人のパソコン環境で動作させられるのは大きなメリットです。

デメリット

  1. 依存性: 現在の作業ディレクトリに依存するため、ディレクトリ構造が変わるとパスが無効になることがあります。
  2. 混乱の可能性: 複雑なディレクトリ構造の場合、相対パスが混乱を招くことがあります。
参照しているファイルの位置を考えながら使わなければいけませんね。

まとめ

絶対パスは、ファイルやディレクトリの位置を一意に特定するために使用され、
相対パスは現在の作業ディレクトリからの相対的な位置を指定するために使用されます。

用途に応じて使い分けることでパスの使い手になりましょう!

間違いなどございましたらご指摘いただけると幸いです。

スポンサーリンク

コメント

タイトルとURLをコピーしました