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

選択肢
ア:①のFn.txt
イ:②のFn.txt
ウ:③のFn.txt
エ:④のFn.txt(正解)
🔒 解説は解答すると表示されます
相対パスと親ディレクトリ参照【ITパスポート解説】
正解の理由
指定されたパスを左から順に解釈すると、カレントディレクトリ(*印のあるディレクトリ)から「1階層上へ移動(..)」「さらに上へ移動(もう1回の..)」して、そこで名前がDIRBの下位に移動し、そこにあるFn.txtを参照します。図中でその位置にあるのは ④ のFn.txtです。したがって、参照されるファイルは ④、つまり選択肢では エ になります。
解法ステップ
- カレントディレクトリは図の*印の付いた右端のDIRB(① があるDIRB)です。
- 最初の「..」:1階層上へ移動します。つまり、右端のDIRBの親であるDIRAに移動します。
- 次の「..」:さらに上の階層に上がります。つまりDIRAの親である上段のDIRB(ルート直下の上側DIRB)に移動します。
- 次に「DIRB」:そのディレクトリ(上段のDIRB)の下にある名前がDIRBのサブディレクトリへ移動します。上段のDIRBには縦に並んだ下側のDIRB(中段のDIRB)があるので、そこへ入ります。
- 最後に「Fn.txt」:その中にあるFn.txtを指定します。図では中段のDIRBの下にぶら下がっているファイルが ④ のFn.txtです。
以上の理由で、参照されるファイルは ④、すなわち選択肢の エ になります。
選択肢別の誤答解説
-
ア: ①のFn.txt
誤り。①はカレントディレクトリ(*印)自身にあるFn.txtです。パスの先頭に「..」があるため、まず上の階層へ移動するので、カレント直下の ① には到達しません。 -
イ: ②のFn.txt
誤り。② は上段のDIRB(ルート直下の上側DIRB)に直接置かれたファイルだと図示されています。パスでDIRBを指定してさらに下に入るため、② の位置で止まる経路にはなりません。 -
ウ: ③のFn.txt
誤り。③ は中段のDIRBの右側のさらに下位にある別のDIRB内のFn.txtです。今回のパスは上段へ上がってから中段のDIRBの下へ入る経路をたどるため、③ のある右側の別の枝には辿り着きません。 -
エ: ④のFn.txt
正解。上へ2回上がって(図の上段DIRBに戻り)、その下側のDIRBに入っていくと到達するのが ④ です。
よくある誤解
-
「.(ドット)は親ディレクトリを意味する」
→ 誤りです。.はカレントディレクトリ(現在いるディレクトリ)を意味し、..(ドット2つ)が「1階層上」を意味します。.を親扱いにしてしまうと階層の移動回数を間違えます。 -
「パスは図を見ずに名前だけで決められる」
→ パス解釈は必ず図(階層関係)に従います。相対パス(先頭に区切り文字がないもの)はカレントディレクトリから順に辿って判断します。
補足コラム
-
相対パスと絶対パスの違い(簡潔)
- 相対パス:カレントディレクトリからの経路を指定します(今回の問題)。先頭が区切り文字で始まらない。
- 絶対パス:ルート(階層の一番上)からの経路を指定します。先頭に区切り文字(ここでは “¥”)があるとルートからの指定になります。
例:ルート直下のAフォルダ内のfile.txtを絶対パスで表すと「¥A¥file.txt」。相対パスだとカレントにより変わります。
-
実務での覚え方のコツ
「.= 今いる場所(止まる)」「..= 一つ上(戻る)」と短く覚え、経路を左から右へ順に動かすイメージを持つとミスが減ります。
FAQ
Q1: パスは左から右に処理するのですか?
A1: はい。左端から順に現在位置を変更していきます。最初が
A1: はい。左端から順に現在位置を変更していきます。最初が
.. ならまず上へ、次が DIR ならその下に入る、という順です。Q2: 先頭に「¥」がある場合はどうなるのですか?
A2: 先頭に「¥」があるとルート(階層の最上位)からの指定になります。相対パスではなく、常にルートからたどります。
A2: 先頭に「¥」があるとルート(階層の最上位)からの指定になります。相対パスではなく、常にルートからたどります。
Q3: 同じ名前のディレクトリが複数ある場合はどう判定しますか?
A3: 指定が相対パスなら、その時点の位置(現在のディレクトリ)にある子要素から探します。図の中の構造をたどれば、一意に決まります。
A3: 指定が相対パスなら、その時点の位置(現在のディレクトリ)にある子要素から探します。図の中の構造をたどれば、一意に決まります。
関連キーワード: ファイルパス, 相対パス, 絶対パス, カレントディレクトリ, 親ディレクトリ, パス記号, ディレクトリ構造

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

