0

Is there any way to initiate opening file in system default application in Add-on SDK environment, or at least in Firefox plugin in general?

I'm looking for multi-platform solution, so I'd rather avoid things like platform detection + require("sdk/system/child_process").exec() + (open, xdg-open, RUNDLL32.EXE SHELL32.DLL,OpenAs_RunDLL).

Something like Desktop#open from Java world would be ideal.

DeepInJava
  • 1,871
  • 3
  • 16
  • 31
czerny
  • 15,090
  • 14
  • 68
  • 96

1 Answers1

1

The solution is method nsIFile#launch(). Instance of nsIFile based on file path can be obtained using FileUtils#File constructor.

Following code demonstrates usage of launch method to open home directory in default file browser in Add-on SDK code.

var homeDir = require('sdk/system').pathFor('Home');
require('chrome').Cu.import('resource://gre/modules/FileUtils.jsm');
new FileUtils.File(homeDir).launch();
czerny
  • 15,090
  • 14
  • 68
  • 96