日向夏特殊応援部隊

俺様向けメモ

ディレクトリ指定とOS判別

やっとXPConnect経由でXPCOM叩くのに慣れてきました。

var Cc = Components.classes;
var Ci = Components.interfaces;

だと思って読んで下さい。
replはMozReplです。

nsIPropertiesを利用したディレクトリの指定

http://developer.mozilla.org/en/docs/Code_snippets:File_I/Oに詳しいのですが、
例えば、デフォルトのダウンロード先ディレクトリを参照させたければ、

var file = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("DfltDwld", Ci.nsIFile);
repl.print(file.path);

のようにして参照します。

しかしLinuxの場合はこれでは参照出来ません。Deskなどに変えて分岐処理が必要になります。

nsIXULRuntimeを利用したOSの判別

Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime).OS;

これでOSの識別子が返ってきます。

WindowsXP
WinNT
MacOSX
Darwin
FedoraCore 6
Linux

のように返って来ます。