このセクションでは次の内容について説明します。
C:\
やD:\
といったボリュームにマッピングされます。 Solaris OSでは、ルート・ノードは単一で、スラッシュ文字(/
)で表されます。
statusReport
ファイルは、Solaris OSでは次のように表します。
/home/sally/statusReport
statusReport
ファイルは次のように表します。
C:\home\sally\statusReport
/
)を使用し、Microsoft Windowsではバックスラッシュ(\
)を使用します。
パスには、相対パスと絶対パスがあります。 絶対パスは、ルート要素と、ファイルの場所を特定するために必要なすべてのディレクトリのリストが常に含まれるパスです。 たとえば、/home/sally/statusReport
は絶対パスです。 このパス文字列には、ファイルの場所を特定するために必要なすべての情報が含まれています。
相対パスは、ファイルにアクセスするためには他のパスと結合する必要があるパスです。 たとえば、joe/foo
は相対パスです。 追加の情報がなければ、プログラムでファイル・システム内のjoe/foo
ディレクトリの場所を確実に特定することはできません。
シンボリック・リンクは、他のファイルへの参照として機能する特殊なファイルです。 ほとんどの場合、アプリケーションではシンボリック・リンクを特別に意識する必要はなく、シンボリック・リンクに対する操作は自動的にリンク先に反映されます(リンク先とは、参照するファイルまたはディレクトリのことです)。 ただし、シンボリック・リンクを削除する場合とシンボリック・リンクの名前を変更する場合は例外となります。この場合、それぞれ削除または名前変更されるのはシンボリック・リンク自体であり、リンク先には反映されません。
次の図では、logFile
は、ユーザーには通常のファイルに見えますが、実際にはdir/logs/HomeLogFile
へのシンボリック・リンクです。 HomeLogFile
が、リンク先です。
通常、シンボリック・リンクの動作をユーザーが特に意識することはありません。 シンボリック・リンクの読取りや書込みは、その他のファイルやディレクトリの読取りや書込みと同じように行うことができます。
シンボリック・リンクの代わりにファイル・システム内の実際の場所を使用することを、リンクを解決するといいます。 このサンプルでは、logFile
が解決されると、dir/logs/HomeLogFile
を使用することになります。
現実世界のシナリオでは、ほとんどのファイル・システムでシンボリック・リンクを自由に使用できます。 そのため、ときには、不注意に作成されたシンボリック・リンクによって循環参照が生じることもあります。 循環参照とは、リンク先がリンク元を参照する状態のことです。 循環参照は直接的なものだけではなく、たとえばディレクトリa
がディレクトリb
を参照し、ディレクトリb
がディレクトリc
を参照し、ディレクトリc
にディレクトリa
を参照するサブディレクトリが含まれるような場合には、間接的な循環参照が発生します。 プログラムで再帰的にディレクトリ構造を操作している場合に循環参照があると、大きな問題となります。 ぜひ、ここで説明したシナリオを参考に、無限ループの発生しないプログラムを作成してください。
次のページでは、Javaプログラミング言語でのファイルI/Oサポートの中心となる、Path
クラスについて説明します。