1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
-
+
+
|
// JavaScript
"use strict";
// Assuming that Cc, Ci and Cu are already loaded
const {TextDecoder, TextEncoder, OS} = Components.utils.import("resource://gre/modules/osfile.jsm", {});
//const {OS} = ChromeUtils.import("resource://gre/modules/osfile.jsm", {});
ChromeUtils.import("resource://gre/modules/osfile.jsm")
const oFileHandler = {
// https://developer.mozilla.org/fr/docs/Mozilla/JavaScript_code_modules/OSFile.jsm/OS.File_for_the_main_thread
xDataFolder: null,
prepareDataFolder: function () {
|
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
-
+
-
+
|
},
loadFile: async function (sFilename) {
if (!this.xDataFolder) {
this.prepareDataFolder();
}
try {
let xDecoder = new TextDecoder();
let array = await OS.File.read(this.createPathFileName(sFilename));
let xDecoder = new TextDecoder();
return xDecoder.decode(array);
}
catch (e) {
console.error(e);
return null;
}
},
loadAs: function (callback) {
let xFilePicker = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker);
xFilePicker.init(window, "Charger fichier", Ci.nsIFilePicker.modeOpen);
xFilePicker.appendFilters(Ci.nsIFilePicker.filterAll | Ci.nsIFilePicker.filterText);
xFilePicker.open(async function (nReturnValue) {
if (nReturnValue == Ci.nsIFilePicker.returnOK || nReturnValue == Ci.nsIFilePicker.returnReplace) {
console.log(xFilePicker.file.path);
try {
let xDecoder = new TextDecoder();
let array = await OS.File.read(xFilePicker.file.path);
let xDecoder = new TextDecoder();
callback(xDecoder.decode(array));
}
catch (e) {
console.error(e);
callback(null);
}
}
|