Envoyé par : jiber2fr
Date : 22/01/2007 09:05
Bonjour,
Je cherche a exécuter une application ou un fichier local avec le programme par défaut du système.
Pour cela, j'ai un chemin de la forme URL (file://...).
Je souhaiterais utiliser la méthode launch() de nsILocalFile. Il me faut donc une instance de nsILocalFile correspondant à l'URL.
J'ai essayé d'utiliser getFileFromURLSpec(url) de nsIFileProtocolHandler. La doc de cette fonction indique: "Converts the URL string into the corresponding nsIFile if possible. A local file will be created if the URL string begins with file://. "
Je pensais donc récupérer un objet nsILocalFile (puisque mon URL commence par file://). Malheureusement, j'obtiens toujours un nsIFile, ce qui m'empêche d'utiliser launch().
Je ne comprend pas pourquoi. Quelqu'un a une idée ? Y a-t-il une solution pour "convertir" un nsIFile en nsILocalFile ?
Merci d'avance.
Envoyé par : Raphael
Date : 22/01/2007 09:21
Euh... Je suis pas certain de répondre à te question mais tu veux convertir un nsIFile en "file://" ?
De mémoire, n'est-ce pas la méthode .path qui te le fait ?
var chemin = fichier.path; ?
Envoyé par : jiber2fr
Date : 22/01/2007 09:29
Non, en fait, j'ai pas été clair.
J'ai:
Et je veux:
Merci en tout cas :)
Envoyé par : chBok
Date : 22/01/2007 09:55
L'exemple du wiki répond-il à ta question ?
const path = "ADRESSE DU FICHIER" var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile) file.initWithPath(path) file.launch()
Il instancie directement un nsILocalFile.
Envoyé par : jiber2fr
Date : 22/01/2007 11:10
Génial, ça marche !
C'était vraiment simple, j'suis un boulet de pas avoir trouvé ça.
Par contre, c'est à peine plus compliqué, puisque initWithPath() prend un chemin dans le format du système (Ex: /home/machin..) et non pas une URL (Ex: file:///home/machin...).
Je suis donc passé par un nsIFile pour obtenir le chemin sous la forme du système. (Y a p'tetre plus simple, mais ça marche)
Merci beaucoup ! Bonne continuation.
Envoyé par : thefab
Date : 23/01/2007 23:26
Y a-t-il une solution pour "convertir" un nsIFile en nsILocalFile ?
Si tu as déjà un nsIFile il te suffit de faire:
file = getFileXXX(); file.QueryInterface(Components.interfaces.nsILocalFile); file.launch();
Ou alors j'ai pas compris la question...
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.