script_createFile.js (1332B)
1 /* eslint-env mozilla/chrome-script */ 2 3 // eslint-disable-next-line mozilla/reject-importGlobalProperties 4 Cu.importGlobalProperties(["File"]); 5 6 addMessageListener("file.open", function (e) { 7 var tmpFile = Cc["@mozilla.org/file/directory_service;1"] 8 .getService(Ci.nsIDirectoryService) 9 .QueryInterface(Ci.nsIProperties) 10 .get("TmpD", Ci.nsIFile); 11 tmpFile.append("file.txt"); 12 tmpFile.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, 0o600); 13 14 File.createFromNsIFile(tmpFile).then(function (file) { 15 sendAsyncMessage("file.opened", { data: file }); 16 }); 17 }); 18 19 addMessageListener("nonEmptyFile.open", function (e) { 20 var tmpFile = Cc["@mozilla.org/file/directory_service;1"] 21 .getService(Ci.nsIDirectoryService) 22 .QueryInterface(Ci.nsIProperties) 23 .get("TmpD", Ci.nsIFile); 24 tmpFile.append("file.txt"); 25 tmpFile.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, 0o600); 26 27 var outStream = Cc[ 28 "@mozilla.org/network/file-output-stream;1" 29 ].createInstance(Ci.nsIFileOutputStream); 30 outStream.init( 31 tmpFile, 32 0x02 | 0x08 | 0x20, // write, create, truncate 33 0o666, 34 0 35 ); 36 var fileData = "Hello world!"; 37 outStream.write(fileData, fileData.length); 38 outStream.close(); 39 40 File.createFromNsIFile(tmpFile).then(function (file) { 41 sendAsyncMessage("nonEmptyFile.opened", { data: file }); 42 }); 43 });