Tips

クロスプラットフォームでOpen resource fileを使用する

日付2009/06/15
ID75792 (英語原文参照)
バージョン11
プラットフォームMac & Win

Mac OSのファイルシステムは、旧来、ファイルの保存にデータフォークおよびリソースフォークを使用していました。一方、WindowsおよびUNIXオペレーションシステムは、単一フォークのデータファイルだけを認識します。そのような理由から、4DのOpen resource fileコマンド、およびリソースファイルの扱いには注意が必要です。WindowsでMac式にフォークされたリソースファイルをOpen resource fileで開こうとした場合、エラーコード199が返されるのはそのためです。

Mac OS XはUNIXオペレーションシステムですが、ユーザが特に意識しなくても、この違いを上手に吸収する仕組みになっています。Windowsは違います。Windowsに移動された場合、ファイルのリソースフォークは".__"から名前が始まるファイルとして表示されます。

Mac版4DのCreate resource fileコマンドは、デフォルトの動作として従来のMac OSリソースファイルを作成します。

 $vhResFile:=Create resource file("MyPrefs";"rsr")

Windows版4Dは、同じコードを実行した場合、クロスプラットフォームのリソースファイルフォーマットを作成し、データフォークにリソースを書き込みます。Mac版との動作の違いを解決するためには、Mac版でも同じ動作をするよう、コマンドにアスタリスクを渡すようにして下さい。

 $vhResFile:=Create resource file("MyPrefs";"rsr";*)

このようにすれば、いずれのプラットフォームでも、リソースはデータフォークに書き込まれ、クロスプラットフォームで扱うことができます。