|
Written by Arash Karimzadeh
|
|
Sunday, 28 June 2009 06:01 |
|
Here we will see how we can access a specific directory in XUL application by javascript. There is a service provided by mozilla called "@mozilla.org/file/directory_service". by using following code you can access the location of Profile Directory of your computer:
var file = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("ProfD", Components.interfaces.nsIFile);
var%20file%20%3D%20Components.classes%5B%22%40mozilla.org%2Ffile%2Fdirectory_service%3B1%22%5D%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20.getService%28Components.interfaces.nsIProperties%29%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20.get%28%22ProfD%22%2C%20Components.interfaces.nsIFile%29%3B The "ProfD" means Profile Directory.
You can replace it with other options such as:Desk
| Desktop directory (e.g. ~/Desktop on Linux, C:\Documents and Settings\username\Desktop on Windows)
| | AChrom | %installation%/chrome (e.g. myApp/chrome/)
| UChrm
| %profile%/chrome
| ProfD
| profile directory
| DefProfRt
| user | DefRt
| %installation%/defaults (e.g. myApp/defaults/) | | PrfDef | %installation%/defaults/pref (e.g. myApp/xulrunner/defaults/pref) | | ProfDefNoLoc | %installation%/defaults/profile (e.g. myApp/xulrunner/defaults/profile) | | APlugns | %installation%/plugins | | ComsD | %installation%/components | | CurProcD | installation (usually) | | Home | OS root (e.g., C:\Documents and Settings\username on Windows or /root on Linux) | | TmpD | OS tmp (e.g., /tmp) | | ProfLD | Local Settings on windows; where the network cache and fastload files are stored | | resource:app | application directory in a XULRunner app | | Progs | User start menu programs directory (e.g., C:\Documents and Settings\username\Start Menu\Programs) |
*The above examples are for an application called myApp. You can create this project by reading this article. You can find more other options at xpcom/io/nsAppDirectoryServiceDefs.h and xpcom/io/nsDirectoryServiceDefs.h. Tags: Chrome | JavaScript | xul |
|
Last Updated on Sunday, 28 June 2009 09:18 |