【第52回】ロータス博士のWinActor塾~絶対パスと相対パス
さて、今回はパスの表記についてお勉強じゃ。
これまでの記事で多少取り扱ったとは思うが、改めて説明したいと思う。
パスですか。なんとなく使えてはいますが・・・
パスには2種類の表記があってな。
今日はそのあたりを教えよう。簡単じゃからすぐ終わるぞ。
博士の「すぐ」は信用ならないんだよなあ。
絶対パスと相対パス
パスには「絶対パス」と「相対パス」の2種類があるのじゃ。
そして、それぞれで表記の仕方が異なる。
絶対と相対・・・。なんか難しそうですね。
何が違うんですか?
これらの決定的な違いは出発点じゃな。
早速説明しよう。
絶対パスと相対パスの違い
パスは目的のファイルやフォルダまでの道筋を文字におこしたものを指します。
例えば次のような階層のフォルダがあるとしましょう。
この図で「ファイル格納先」というフォルダを示すパスはどのようになるでしょうか?
Cドライブから始まって、フォルダをクリックして開いていく要領で、順番に進んでいくと
Cドライブ→WinActor塾→ファイル格納先
これをパスで表すと次のようになりますね。
C:\WinActor塾\ファイル格納先
このパスの表記を「絶対パス」と言います。
先ほど博士の言った出発点の違いというのは、このパスを辿る道の最初の地点(C:)のことです。
絶対パスは、一番上の階層のもの(CドライブやDドライブ等)から始まり、下の階層へ辿っていくのが特徴です。
また、絶対パスでは階層が変わる部分のつなぎ目に「\」を使用します。
では、相対パスはどうでしょう。出発点をCドライブとした場合の相対パスを見てみましょう。
WinActor塾/ファイル格納先
これが相対パスの表記です。
相対パスでは今現在自分のいる地点(出発点)を省略できます。
そして、階層のつなぎ目を「/」で表します。
相対パスは出発点が決まっていない
相対パスの最大の特徴は、出発点が可変であることです。
つまり、必ずしもCドライブから辿る必要がないのです。
出発点が決まってないんですか?それはちょっと困りますよ博士!
出発点を決めてくれないと文字で表せないじゃないですか!
安心するのじゃ。WinActorは出発点がデフォルトで決まっておる。
自分のシナリオファイルが格納されている場所が出発点になるのじゃ。
「WinActor塾」というフォルダ内にシナリオを保存した場合、出発点が「WinActor塾」からになります。
このとき、「ファイル格納先」フォルダを示す相対パスは次のようになります。
ファイル格納先
ん・・・?ああ、自分のいるフォルダは省略するから
これだけでパスなんですね!なんだか変な感じですね。
うむ。これまでの例ではフォルダを扱ったが、ファイルを指定するときも同じじゃ。
シナリオファイルと同じフォルダにファイルがある場合、そのファイル名だけ書けば
相対パスとして開かれるのじゃ。
相対パスは上の階層を指定できる
相対パスのもう一つの特徴として、階層を上に辿っていくことができます。
絶対パスの場合、出発点が最上位ディレクトリであるため、それより上の階層が存在しません。
下へ下へと進むだけですので、上の階層を指定する必要がなく、その方法もありません。
しかし、相対パスでは出発点の階層が定まっていないため、上の階層を指定する方法が用意されています。
少しフォルダの階層を増やしたぞ。
このフォルダ構成を例にみてみよう。
まずは出発点=シナリオファイルの位置を「A」というフォルダにしておきましょう。
この状態で「シナリオ」というフォルダを指定したい場合、1つ上の階層となりますね。
相対パスでは1つ上の階層を次のように表します。
../
少し見辛いかもしれませんが、ドット2つとスラッシュ1つを続けて入力です。
これで「シナリオ」というフォルダが指定できました。
そうか!1階層上のフォルダは自分自身が格納されているフォルダだから
1つしか存在しないってことでフォルダ名が不要なんですね!
その通り。名前がないと違和感があるかも知れんが、すぐ慣れるじゃろう。
ではステップアップして、次の場合はどうかな?
「A」というフォルダにシナリオを作成し、そこから「ファイル格納先」フォルダ内の「test.txt」を開く場合
どのようなパスを指定すれば良いでしょうか。
図に表すと次のようになります。オレンジの矢印を辿るような相対パスを考えてみてください。
今までの説明でバッチリわかりました。
答えはズバリ、これですね!
../../ファイル格納先/test.txt
なんと!正解じゃ!
まだ2階層上は教えていなかったんじゃがな。
このように../は連続して使用できるのじゃ。3階層上ならば../../../となるぞ。
あ、なんかもう達成感が。
今日は終わりにしましょう。
こらこら・・・。といっても教えられるのはこれくらいじゃ。
一応相対パスを使うメリットを紹介して終わりにしよう。
もう少し付き合っておくれ。
相対パスの使いどころ
相対パスは上の階層を指定でき、その上の階層のフォルダ名は不要という特徴がありました。
これには大きなメリットが存在します。
先ほどの図をもう一度見てみましょう。
ファイル格納先にある「test.txt」を開くには次のパスが必要でした。
../../ファイル格納先/test.txt
では、何らかの理由でフォルダを移動する必要が出た場合どうでしょうか。
次のようにフォルダを移動したとします。
この時、同じように「test.txt」を開くためのパスは
../../ファイル格納先/test.txt
変わってないじゃないですか!
そう!変わってないのじゃ!
変える必要がない、と言うべきか。パスの表記に影響が出ない範囲であれば
フォルダ移動が発生してもシナリオ内のパスを修正しなくて済むのじゃ。
絶対パスではこうはいかんな。
なるほど。こんなところで役に立つなんて・・・。
とはいえ、絶対パスと相対パスが混在しているようなシナリオは注意じゃぞ。
パスを見ただけではディレクトリ構成が分かりづらいというのもある。
絶対パスには絶対パスの良さがあるのじゃ。
処理によっては相対パスが使えない場合もあるからのう。
でも最近は相対パスにほとんど対応してるんですよね?
ライブラリでそういうのを見かけましたよ。
よく知っておるのう。実はWinActor V6までは相対パスはほとんど使えなかったのじゃ。
しかしV7あたりでライブラリに見直しが入って、今ではパスを扱うライブラリでは
相対パスが当たり前のように使えるようになっておる。
ほれ、これはほんの一部じゃが注釈を見てみるとすぐわかるぞ。
うわ本当だ。すごいですね!
ライブラリたくさんあるのに直したんですね。
WinActorは見た目以外でも日々進化しているということじゃな!
実践してみても良いのじゃが、そっちは道場にお任せしようかのう。
それでは今回はここまで。また次回をお楽しみに!
関連記事こちらの記事も合わせてどうぞ。
2024.11.05
【第105回】ロータス博士のWinActor塾~新しい画像マッチング画面
2024.09.27
【第104回】ロータス博士のWinActor塾~ガイド利用シナリオ(作成編)
2024.09.10