問題
問75
図に示すような階層構造をもつファイルシステムにおいて、*印のディレクトリ(カレントディレクトリ)から「….\DIRB\Fn.txt」で指定したときに参照されるファイルはどれか。ここで、図中の□はディレクトリを表し、ファイルの指定方法は次のとおりである。
【指定方法】
- (1) ファイルは「ディレクトリ名\…\ディレクトリ名\ファイル名」のように、経路上のディレクトリを順に「\」で区切って並べた後に「\」とファイル名を指定する。
- (2) カレントディレクトリは「.」で表す。
- (3) 1階層上のディレクトリは「..」で表す。
- (4) 始まりが「\」のときは、左端のルートディレクトリが省略されているものとする。

- ①のFn.txt
- ②のFn.txt
- ③のFn.txt
- ④のFn.txt
[出典:ITパスポート試験 平成28年度秋期 問75]
正解
正解は「エ」です。
解説
正解は「④のFn.txt」です。この問題では、カレントディレクトリ(*印)を基準に、相対パス「..\..\DIRB\Fn.txt」がどのファイルを指すかを判断します。まず「..」は1階層上のディレクトリを表すため、最初の「..」で現在のDIRBから1つ上のDIRAへ移動します。次の「..」でもう1階層上へ移動するため、さらに上位のDIRBへ戻ることになります。
ここまでで、基準となるディレクトリはルート直下のDIRBです。続いて「DIRB」と指定されているため、そのDIRBの配下にあるDIRBへ移動します。最後に「Fn.txt」を指定することで、そのディレクトリ内のファイルが参照されます。図と照らし合わせると、この条件に一致するのは④のFn.txtです。これは、建物の中で「一つ上の階へ戻り、さらにもう一つ上へ戻ってから、指定された部屋に入る」と考えると理解しやすいです。
ア(①のFn.txt):
カレントディレクトリ直下のファイルですが、「..」による階層移動を考慮していないため指定パスと一致しません。
イ(②のFn.txt):
1階層分の移動のみを想定した位置であり、「..\..」で2階層上へ移動する条件を満たしていません。
ウ(③のFn.txt):
DIRB配下ではありますが、相対パスで指定されたDIRBの位置と異なるため参照対象になりません。
難易度
相対パスの基本的な意味を理解していれば解ける問題ですが、階層を図で正確に追えない初心者にはやや難しく感じられます。「..」の移動回数を間違えると誤答しやすいため、注意深さが求められる問題です。
用語補足
カレントディレクトリ:
現在作業している基準となるディレクトリです。相対パスはこの位置を起点に解釈されます。
相対パス:
カレントディレクトリを基準にファイルやディレクトリの場所を指定する方法です。例として「..\data.txt」などがあります。
ディレクトリ:
ファイルを整理・分類するための入れ物です。フォルダとほぼ同じ意味で使われます。
ルートディレクトリ:
ファイルシステムの最上位に位置するディレクトリです。すべてのディレクトリの起点になります。
対策
相対パスの問題では、「..」が出てくるたびに必ず1階層ずつ戻る動作を図に書いて確認することが重要です。頭の中だけで処理せず、現在位置を一つずつ追跡する癖を付けるとミスを防げます。また、絶対パスと相対パスの違いを整理して覚えておくことも有効な対策です。

