基礎編(その十一)

ページ名:tutorial_basis_11


フォルダ構造の基礎知識


前回の最後に予告した通り、今回はエフェクトブースターの話題を少し離れて OS のファイルシステムにおけるフォルダ構造(それも Windows PC )について、ごく簡単に説明します。


コンピュータで扱われるデータはドライブと呼ばれる電子装置、たとえば HDD (ハードディスクドライブ)や SSD(ソリッドステートドライブ)に格納されますが、ただ雑然と放り込まれているのではなく、フォルダ(ディレクトリ)というものを使ってツリー(樹形図)状に置き場所を構築していることが普通です。


OS を起動するデータが入ったドライブはふつう C ドライブとして設定されますけども、このドライブの最上位に置かれたフォルダをルートと呼びます。このルート root は「根」の意味ですね。樹形図における根っこということです。
そのルートの中にファイルだけでなくフォルダも置かれまして、そのフォルダの中にはさらにフォルダ(とファイル)が置かれ、さらにその中にフォルダ(とファイル)が・・・という具合で入れ子状の階層構造を作っているわけです。


まあ、住居表示みたいなものですよね。
日本というルートの下に、北海道・青森県・岩手県・・・・鹿児島県・沖縄県というフォルダがあり、それぞれのフォルダの下には市町村のフォルダがあると。さらにその市町村の下には町名のフォルダがあって・・・というような階層構造を考えれば分かりやすいのではないでしょうか。


絶対パスと相対パス


その場合、住所を表すには幾つか方法があります。
ご丁寧に都道府県から書くのは確実な方法です。たとえば皇居の住所を「東京都千代田区千代田一丁目一番」と書くようなもので。
ですが、ある特定の状況下では「わざわざ東京都から書かなくてもいい」ということもありえるわけです。たとえば千代田区にある郵便局や警察署内での会話なら「東京都千代田区」の部分が不要で、「千代田一丁目一番」で話が通じるはずです。


コンピュータにおけるファイルの特定する方法も、これと似たところがあります。
前回使った画像を再掲して説明することにしましょう。



これは何かというと、エフェクトブースターから参照しているファイル( MapOfWirth.bmp ですから背景地図の画像です)が見つからないよ、という風に WirthBuilder が出した警告のダイアログなんですが、


c:¥games¥CardWirth¥Scenario¥_fge¥エフェクトブースターチュートリアル¥effect¥MapOfWirth.bmp


と書かれてますよね。これは皇居の住所を東京都から書き始めたようなもので、ドライブのルートから全てのフォルダを辿り、そのフォルダ名をいちいち列記してファイル名を記述しているわけです。
こういう表記を絶対パスとかフルパスなどと呼びます。このパスは path 、小道のこと。フォルダを順次辿っていく感覚が小道っぽいということでしょうか。「○○通り」といえば誰でも分かるような大通りとはまたちょっと感覚が違います。
余談ですが、Windows のファイルシステムには「ショートカット」というものがありますね。これはもちろん短髪のことではなく「近道」の意味です。パスを辿るのではなく、一発で目的地に行き着く近道、それがショートカットというわけです。


さて、絶対パスに対しては相対パスというものもあります。それは「あるフォルダの場所から見た」ファイル(の位置)のことを言うものです。「東京都」を省略して(暗黙の了解事項として)「千代田区」から書き始めるようなものですね。
たとえば「エフェクトブースターチュートリアル」フォルダが基準の位置なら、先ほどのファイルのパスを effect¥MapOfWirth.bmp と表示するのが相対パスの流儀です。基準のフォルダ、つまり「今いるところ」までの表記はカットして、そこから先の道筋だけ書くわけです。
これがもし、その下の effect フォルダが基準の位置なら MapOfWirth.bmp とファイル名だけで示します。同じ町内なんだから名前を言えば通じるだろ、って感じ。実際の町内と違って、フォルダという町内の中には同姓同名がいないことになってますので、これで充分なのです。


ちなみに CardWirth をはじめとして多くのソフトウェアでは相対パスを多用します。
それは、そのソフトウェアがどこのフォルダにインストールされたか、コンピュータごとに異なるからです。
私は自分の PC の c:¥games フォルダに CardWirth をインストールしましたが、人によっては c:¥Program Files に置いたかもしれませんし、デスクトップに置いたかもしれませんし、C ドライブじゃない別のドライブかもしれません。
それらの個別の違いを吸収し、同じように動作させるためには、ファイルを指定するにも「CardWirth のエンジンが置かれているフォルダを基準として」とか、「いま実行中のシナリオのフォルダを基準として」というような形で、相対パスでファイルを指定せざるを得ないわけです。
エフェクトブースターの fileName パラメータはまさにこの理屈で、相対パスを用いてファイルを指定しているわけです。


パス表記のルール


さて、これらの表記についてはルールがあります。フォルダの階層を ¥ 記号で順につないで表示するという点では一緒ですが、


  • ¥ 記号から始まる表記は絶対パスである*1
  • 相対パスで表記の基準となるフォルダ*2. とドット一個で表す
  • 相対パスで一階層上のフォルダ*3.. とドット二個で表す
    • .. を ¥ で連結して何階層もさかのぼることも可能。たとえば「親フォルダの更に親」は ..¥..

という決まりになっています。幾つか例を示しますと・・・


  • 「親フォルダにある MapOfWirth.bmp 」は ..¥MapOfWirth.bmp
  • 「親フォルダに picture というサブフォルダがあり、その中にある MapOfWirth.bmp 」なら ..¥picture¥MapOfWirth.bmp
  • 「親の親のフォルダにある『Ask』というフォルダの下の『ゴブリンの洞窟』というフォルダの中の『宿の亭主.bmp』というファイル」なら ..¥..¥Ask¥ゴブリンの洞窟¥宿の亭主.bmp

という具合。
これは OS (この場合は MS-DOS および Microsoft Windows シリーズ)で統一されたスタイルであって、まともなソフトウェアならこういう表記法をサポートしていることと思いますし、少なくともエフェクトブースターでは .. を使った相対パス指定は可能です(前回確認したとおりです)。


¥ と \ とお詫びとお断り


Windows ではパスの区切りに ¥ を使うことは前項で述べたとおりすが、これは厳密に言えば「日本語版の Windows」における約束であって、元々の(つまり英語の)、そして英語以外の多くの言語では \ 記号(バックスラッシュ back slash)を用いています。


つまり日本語版 Windows で C:¥CardWirth¥Data¥Table¥AdventurersInn.bmp と表記するところ、英語版の Windows では C:\CardWirth\Data\Table\AdventureresInn.bmp と表記されるのです。


そして、これは少しややこしいことなのですけれども、コンピュータ内部の動作において、¥ と \ は本来同じデータなのです。語弊があるのを承知で書きますが、「本来 \ と表記される文字を、日本語版ではわざわざ ¥ と文字化けさせている」と言うことも出来ます。


ちなみにキーボードで、右下隅にあるキー(\)と、右上隅にあるキー(¥)、どちらも入力したときに同じ文字が表記されますよね?これ、同じデータ(文字コード)が送信されたものとして扱うことになってるんですわ。
ただ、同じ値を日本語モードで表示するときは ¥ として、英語モードで表記するときは \ として、表示する仕組みになっているのです。
喩えるなら、千葉真一という日本のアクションスターを、日本語モードでは「千葉真一」と、英語モードでは「J. J. Sonny Chiba」と表記するような・・・かえって分かりにくいか。いやまあ「李小龍」と「 Bruce Lee 」の違いでもなんでもいいんですが、同じ文字のはずが表記モードによって見え方が違うという、そういう事態になっております。


その理由を説明しはじめると、文字コードと規格についての、専門家や技術者以外には大して興味もない歴史について説明しなければならないので、バサッと割愛します。興味のある人はご自分でググって下さい。


そして、このチュートリアル(というか Wiki3 というサイト自体の仕様)は英語モードで表示するようになっているのです。
つまり ¥ と入力しても本来は \ と表記されるようになってしまっているのですが、ここまでは無理矢理に ¥ と表記させるよう力技で対応しているのです*4


これが結構面倒くさい作業でしてね。
そこで申し訳ないのですが、今後はフォルダを区切る文字を ¥ ではなく \ と表示するようにします。
読み進める際は適宜読み替えていただけるようお願いいたします。


まとめとおさらい


今回は雑談みたいなものなので、ポイントというようなものも特にないんですが、あえていえば


  • フォルダの位置が分かるようなファイル名(またはフォルダ名)の表記をパスという
  • パスには絶対パスと相対パスがある
  • パスの区切りに使う文字は日本語モードだと ¥ と表記されるが、それ以外の言語ではたいてい \ である

といったところでしょうか。なんだか年配者向けのパソコン講座みたいな内容になってしまいましたが、「物心がついたときには既に Windows があった」世代もいまや少なくなくて、どっちかというと若い方向けのおさらいを意識しました。


さて、次回は、ひとまず基礎編の最終回とします。
ここまでは拡張子 .jpy1 を持つエフェクトブースターの定義ファイル(JPY ファイル)を扱ってきましたが、それ以外のファイル形式、 JPTX ファイルおよび JPDC ファイルを紹介することにします。


戻る:基礎編(その十)

*1 ただしその前にドライブ名が来ることはあります
*2 現在のフォルダ Current Folder などと呼びます
*3 親フォルダ Parent Folder などと呼びます
*4 HTML の実体参照という仕組みを使い、 ¥ と入力すると ¥ と表示されるのを利用しています

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧