Полезная информация

Юристы зарабатывают огромные деньги и славу, оперируя хорошим знанием законов. Правила форума — простой путь к успешному общению.

№120-01-2008 19:57:07

Орец
Участник
 
Группа: Members
Зарегистрирован: 18-08-2006
Сообщений: 84
UA: Firefox 2.0

Путь к временным файлам из расширения.

Во время работы расширение должно создавать и периодически обращаться к текстовым файлам.
Для этого необходимо иметь общее место для них независящее от наличия прав изменять файлы в корневой папке диска C:\ . Бывает что на рабочих станциях запрещают.
Вопрос, как правильно  прописать относительный путь чтобы FF2 или ОС WIN xp/vista через FF2 правильно определяли его.
Пытался для этого в обращаться из расширения по следующим путям

Выделить код

Код:

%APPDATA%/Mozilla/Firefox/Profiles/ff_test.txt
ff_test.txt
./ff_test.txt
%TEMP%/ff_test.txt
chrome://ff_test.txt
И по ним же заменяя '/' на '\' или '\\'

Но файлы не создавались, в отличие от вручную прописного абсолютного пути, вроде C:\\ff_test.txt.

Вызываемая функция:

Выделить код

Код:

function ff_test(par) {
alert("Получен параметр: "+par);
var fileOut = FileIO.open(par);
alert("Файл опознан " +fileOut);
var rv = FileIO.write(fileOut, 'Содержимое файла', "w", "windows-1251");
alert("Файл создан" +rv);
}

Код кнопки вызова:

Выделить код

Код:

var par = '%TEMP%\\ff_test.txt'; // изменяется 
ff_test(par);

Вызывал отдельно, для скорости проверки. Строку пути в коде кнопки быстрее поменять чем всё в расширении с последующей его переустановкой.
Для работы с файлом использовался модуль io.js

Отсутствует

 

№220-01-2008 21:59:14

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 2.0
Веб-сайт

Re: Путь к временным файлам из расширения.

Цитирую Io.js:

Выделить код

Код:

// ---------------------------------------------
188 	        // ----------------- Nota Bene -----------------
189 	        // ---------------------------------------------
190 	        // Some possible types for get are:
191 	        //      'ProfD'                         = profile
192 	        //      'DefProfRt'                     = user (e.g., /root/.mozilla)
193 	        //      'UChrm'                         = %profile%/chrome
194 	        //      'DefRt'                         = installation
195 	        //      'PrfDef'                                = %installation%/defaults/pref
196 	        //      'ProfDefNoLoc'          = %installation%/defaults/profile
197 	        //      'APlugns'                       = %installation%/plugins
198 	        //      'AChrom'                                = %installation%/chrome
199 	        //      'ComsD'                         = %installation%/components
200 	        //      'CurProcD'                      = installation (usually)
201 	        //      'Home'                          = OS root (e.g., /root)
202 	        //      'TmpD'                          = OS tmp (e.g., /tmp)

Что тут в последней строчке ? Я так понимаю:

Выделить код

Код:

...
var tmpfile = DirIO. get ("TmpD"). append ("test.txt");
...

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№320-01-2008 23:19:01

Орец
Участник
 
Группа: Members
Зарегистрирован: 18-08-2006
Сообщений: 84
UA: Firefox 2.0

Re: Путь к временным файлам из расширения.

А.... ну... там было что-то по английски :blush:
Если у кого-то появились обоснованные сомнения - то читать я умею. Только по русски. :dumb:
Спасибо Антон. Всегда выручаешь :)

Добавлено Sun Jan 20 23:42:37 2008 :
Хотя покачто ещё не получилось создать файл во временной папке. :(

Выделить код

Код:

var tmpfile = DirIO. get ("TmpD"). append ("ff_text.txt");
alert("Путь приемлем tmpfile " +tmpfile);
var fileOut = FileIO.open(tmpfile);
alert("Путь приемлем fileOut " +fileOut);
var rv = FileIO.write(fileOut, 'Текст', "w", "windows-1251");
alert("Файл создан1" +rv);
var rv = FileIO.write(tmpfile, 'Содержание', "w", "windows-1251");
alert("Файл создан2" +rv);

Отредактировано Орец (21-01-2008 00:16:42)

Отсутствует

 

№421-01-2008 06:21:32

Shutnik
Участник
 
Группа: Extensions
Зарегистрирован: 12-11-2005
Сообщений: 3785
UA: Firefox 2.0

Re: Путь к временным файлам из расширения.

Выделить код

Код:

var data = "hello world";
var file = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("TmpD", Components.interfaces.nsIFile);
file.append("foobar.txt");
var output = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
output.init(file, 0x02 | 0x08 | 0x20, 0666, 0);
output.write(data, data.length);
output.close();

p.s.: кто такой Io.js? :rolleyes:

Отсутствует

 

№521-01-2008 08:45:02

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 2.0
Веб-сайт

Re: Путь к временным файлам из расширения.

покачто ещё не получилось создать файл во временной папке

попробуй

Выделить код

Код:

var tmpfile = DirIO. get ("TmpD");
tmpfile. append ("ff_text.txt");
...

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№621-01-2008 15:20:19

Орец
Участник
 
Группа: Members
Зарегистрирован: 18-08-2006
Сообщений: 84
UA: Firefox 2.0

Re: Путь к временным файлам из расширения.

Anton
Работает :)

Выделить код

Код:

var tmpfile = DirIO. get ("TmpD");
tmpfile. append ("ff_text.txt");
alert("Путь принят tmpfile " +tmpfile);
var rv = FileIO.write(tmpfile, 'Содержание файла', "w", "windows-1251");
alert("Файл создан " +rv);

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]