Mac OS 9までは、書類をダブルクリックしたとき、どのアプリで開かれるかという情報を、クリエイター/タイプという、独自の情報を用いて、ハンドリングしていた。
たとえば、Mac版のInternetExplorerでファイルを保存すると、クリエイターは、"MSIE"となり、タイプは、"HTML"となる。
つまり、同じHTMLファイルでも、ダブルクリックしたときに、IEで開いたり、Firefoxで開いたりすることができる。
一方、Windowsは、古くから「拡張子」という方法を用いており、拡張子に対して、このアプリで開くという設定ができる。アプリは一つしか指定できないので、ie.htmlをダブルクリックしたらIEが起動し、fx.htmlをダブルクリックしたらfirefoxで開く・・といったことができない。
Mac OS 9までのタイプ/クリエイター方式は、一見スマートだが、一般ユーザー(特に初心者)は、これらの存在すら知らないし、ましてや変更する方法すら知らない人も多かったはず。
では、Mac OS Xの場合はどうだろうか。
Mac OS Xにも、以前として、タイプ/クリエイター方式は存在している。
しかも、同時に拡張子による判別も採用されている。
書類をダブルクリックで開こうとした場合、どういう手順でアプリケーションが決定されてるかというと。。。
1)ファイルにクリエーターが記載されている場合は、そのクリエータをもつアプリを探す
2)拡張子が指定されてる場合は、その拡張子を持つファイルを開けるアプリを探す。このとき、拡張子の大文字小文字は区別されない。(ex .Zと.zは等価に扱われる)
3)ファイルタイプが指定されている場合には、このファイルタイプを開けるアプリケーションを探す。
・・・・と、Professional Mac OS Xに書かれてあった。
3番のファイルタイプが指定されてる場合・・のケースがいまいちよく分からないのだけれど。
アプリ的には、Cocoa > Carbon > Classicという感じになると思う。
例えば、まったく同じタイプ/クリエータの場合はどうなんだろうか。
Acrobat Readerのversion 5と6、その他同一アプリのバージョン違いなど。
OS 9までの場合は、アプリケーション本体の変更日時が新しいものが優先されていたが、どうもOS Xの場合、そうではない。その証拠に、
Nega Diary: エラーコード -10660
という現象が起きてしまう。
Tiger以降においては、さらにUTI(Uniform Type Identifier)という方法が採用されており、さらに抽象化された方式になってらしい(ユーザーレベルでどう扱って良いかはまだよくわからない)
まぁ、あとはopenコマンドを使ってむりくり開くという手もないこともないけど、、、まぁ、お好きに。
うーん。しかし、コンピュータってまだまだインテリジェンスじゃないなぁ。。