Reputation: 2842
Is it possible to develop a Firefox addon that can read/write a file from hard disk? What code should I use?
Upvotes: 2
Views: 4455
Reputation: 7888
it's just copy (and combination ) of code in links @Hypnos and @ephemient provided:
const {Cc,Ci} = require("chrome");
//create proper path for file
var theFile = 'd:\\q.txt';
//create component for file writing
var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
file.initWithPath( theFile );
if(file.exists() == false) //check to see if file exists
{
file.create( Ci.nsIFile.NORMAL_FILE_TYPE, 420);
}
var foStream = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream);
// use 0x02 | 0x10 to open file for appending.
//foStream.init(file, 0x02 | 0x10, 0666, 0);
foStream.init(file, 0x02 | 0x08 | 0x20, 0666, 0);
// if you are sure there will never ever be any non-ascii text in data you can
// also call foStream.write(data, data.length) directly
var converter = Cc["@mozilla.org/intl/converter-output-stream;1"].createInstance(Ci.nsIConverterOutputStream);
converter.init(foStream,"UTF-8", 0, 0);
converter.writeString('Hi, This is Death. Who are you?');
converter.close(); // this closes foStream
Upvotes: 2