Voglio dare all'utente qualsiasi opzione che desidera modificare un file, come posso aprire un file con il programma predefinito del tipo di file specifico? Ho bisogno che funzioni con Windows e Linux, ma l'opzione Mac sarebbe ottima.aprire un file con il programma predefinito in node-webkit
risposta
come diceva PSkocik, prima rilevare la piattaforma e ottenere la riga di comando:
function getCommandLine() {
switch (process.platform) {
case 'darwin' : return 'open';
case 'win32' : return 'start';
case 'win64' : return 'start';
default : return 'xdg-open';
}
}
In secondo luogo, eseguire la riga di comando seguito dal percorso
var sys = require('sys');
var exec = require('child_process').exec;
exec(getCommandLine() + ' ' + filePath);
Possiamo ottenere un segnale chiuso? C'è una chiamata dove saprei che l'applicazione è stata chiusa? – django
Rilevare la piattaforma ed impiego:
- 'start' su Windows
- 'aperto' su Mac
- 'xdg-open' su Linux
Per file su un disco:
var nwGui = require('nw.gui');
nwGui.Shell.openItem("/path/to/my/file");
Per i file remoti (ad esempio, pagina web):
var nwGui = require('nw.gui');
nwGui.Shell.openExternal("http://google.com/");
io non sono certo se all'inizio si è abituati a lavorare come nelle precedenti versioni di Windows, tuttavia su Windows 10 non funziona come indicato nella risposta. Il primo argomento è il titolo della finestra.
Inoltre il comportamento tra Windows e Linux è diverso. Windows "start" eseguirà ed uscirà, sotto linux, xdg-open attenderà.
questa era la funzione che alla fine ha funzionato per me su entrambe le piattaforme in maniera simile:
function getCommandLine() {
switch(process.platform) {
case 'darwin' :
return 'open';
default:
return 'xdg-open';
}
}
function openFileWithDefaultApp(file) {
/^win/.test(process.platform) ?
require("child_process").exec('start "" "' + file + '"') :
require("child_process").spawn(getCommandLine(), [file],
{detached: true, stdio: 'ignore'}).unref();
}
si può spiegare di più? la tua domanda non è chiara – Khalid
Ho un percorso file, voglio aprirlo con il programma predefinito – InvisibleUn1corn