Я пытаюсь разработать расширение для Firefox.Для начала я пытаюсь записать в файл, но я получаю очень странное и необъяснимое поведение для меня.
этот код работает:
var file = showFilePicker(window,"saveTestCaseAs",
Components.interfaces.nsIFilePicker.modeSave,
Format.TEST_CASE_DIRECTORY_PREF,
function(fp) {return fp.file;});
var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
foStream.init(file1, 0x02 | 0x08 | 0x20, 438, 0);
var converter = Components.classes["@mozilla.org/intl/converter-output-stream;1"].
createInstance(Components.interfaces.nsIConverterOutputStream);
converter.init(foStream, "UTF-8", 0, 0);
converter.writeString("test string");
converter.close();
, а этот - нет:
var file1 = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file1.initWithPath("C:\Documents and Settings\XPMUser\Desktop\test.t");
var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
// use 0x02 | 0x10 to open file for appending.
foStream.init(file1, 0x02 | 0x08 | 0x20, 438, 0);
var converter = Components.classes["@mozilla.org/intl/converter-output-stream;1"].
createInstance(Components.interfaces.nsIConverterOutputStream);
converter.init(foStream, "UTF-8", 0, 0);
converter.writeString("test string");
converter.close(); // this closes foStream
Сообщение об ошибке: Ошибка: компонент возвратил код ошибки: 0x80004005 (NS_ERROR_FAILURE) [nsIFileOutputStream.init] Однако это сообщение об ошибке ничего не значит, так как это самая общая ошибка из всех.это очень странно, потому что единственное различие заключается в том, как файловый объект инициализируется, но в обоих случаях параметры инициализации (имя файла, prems и т. д.) и тип возвращаемого объекта в точности совпадают.
Будет оченьБуду признателен, если кто-нибудь даст подсказку об этом.