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

選択肢
ア:①のFn.txt
イ:②のFn.txt
ウ:③のFn.txt
エ:④のFn.txt(正解)
🔒 解説は解答すると表示されます
図の階層構造で“..¥.¥DIRB¥Fn.txt”を指定したときに参照されるファイル【ITパスポート 解説】
正解の理由
指定されたパスを左から順に解釈すると、カレントディレクトリ(*印のあるディレクトリ)から「1階層上へ移動(..)」「さらに上へ移動(もう1回の..)」して、そこで名前が DIRB の下位に移動し、そこにある Fn.txt を参照します。図中でその位置にあるのは ④ の Fn.txt です。したがって、参照されるファイルは ④、つまり選択肢では エ になります。
(注)問題文の表記「..¥.¥DIRB¥Fn.txt」は、図の構造と選択肢の正答が示す意図から、実質的に「上へ2回(.. ¥ ..)」と解釈して辿るものと理解します。以下はその前提での厳密な辿り方です。
解法ステップ
- カレントディレクトリは図の*印の付いた右端の 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パスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

