NsIFilePicker
From MozillaZine Knowledge Base
This page is part of the extension development documentation project.
Ask your questions in MozillaZine Forums. Also try browsing example code.
Note: development documentation is in process of being moved to Mozilla Development Center (MDC).
Using nsIFilePicker
const nsIFilePicker = Components.interfaces.nsIFilePicker; var fp = Components.classes["@mozilla.org/filepicker;1"] .createInstance(nsIFilePicker); fp.init(windowHandle, "Dialog Title", nsIFilePicker.modeOpen); fp.appendFilters(nsIFilePicker.filterAll | nsIFilePicker.filterText); var rv = fp.show(); if (rv == nsIFilePicker.returnOK) { var file = fp.file; // work with returned nsILocalFile... } // to get a simple windowHandle you may use .. (returns the any most recent one) const kWindowMediatorContractID = "@mozilla.org/appshell/window-mediator;1"; const kWindowMediatorIID = Components.interfaces.nsIWindowMediator; const kWindowMediator = Components.classes[kWindowMediatorContractID].getService(kWindowMediatorIID); var windowHandle = kWindowMediator.getMostRecentWindow(null);
Notes
- If you pass empty string as dialog title, the dialog will have default title
- When checking return value for Save dialog, be sure to check for nsIFilePicker.returnReplace too.
- Available modes: modeOpen, modeSave, modeGetFolder, modeOpenMultiple.
- Available filters: filterAll, filterHTML, filterText, filterImages, filterXML, filterXUL, filterApps.