[javascript] Escribir al disco duro desde firefox

Iniciado por haveavigar, 12 Febrero 2011, 23:41 PM

0 Miembros y 1 Visitante están viendo este tema.

haveavigar

Buenas a todos!
Estoy haciendo una extension para Firefox 3 la cual guarda lo que pongamos en una caja de texto mas el titulo mas la url de la pagina actual en un archivo.
Hasta ahora solo puedo guardar en un solo archivo. O sea escribiendo la ruta directamente en el codigo JS en la variable "savefile".
POR EJEMPLO
var savefile="C:\\links.txt";

Lo que yo quiero hacer es que la ruta sea la concatenacion de algunos elementos
POR EJEMPLO:
que la ruta sea:
var savefile="C:\\links\\" + cajanombrearchivo.value;

De esta forma se podria seleccionar el nombre del archivo.
No se como pasarle a el "Components.interfaces.nsILocalFile" y initWithPath la ruta del directorio.


Mas abajo dejo el codigo que no funciona.
Tambien les dejo el link al a extension en mediafire (solo por si a alguien le interesa)

Código (javascript) [Seleccionar]

var savefile="C:\\links\\" + cajanombrearchivo.value;

function save(loslinks, eltitulo, laurl) {
var formado= loslinks + ";titulo=" + eltitulo + ";url=" + laurl + "\n";
// HABILITAR PRIVILEGIOS
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {
alert("Permission to save file was denied.");
}
// INICIALIZACION DE LA INTERFAZ CON LA VARIABLE file
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
file.initWithPath( savefile );

// SI NO EXISTE EL ARCHIVO CREARLO
if ( file.exists() == false ) {
alert( "Creating file... " );
file.create( Components.interfaces.nsIFile.NORMAL_FILE_TYPE, 420 );
}
// INICIALIZACION DEL STREAM CON LA VARIABLE outputStream
var outputStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance( Components.interfaces.nsIFileOutputStream );

outputStream.init( file, 0x04 | 0x08 | 0x10, 420, 0 );
var output = formado;
var result = outputStream.write( output, output.length );
outputStream.close();


EL LINK A LA EXTENSION:
http://www.mediafire.com/?3m0ctxw2pab9igs

Eso es todo.
Saludos.
Nico