PDA

View Full Version : [Java] Eseguire file anche non nel path, anche non .exe


Mazza2
29-06-2004, 12:22
Runtime.getRuntime().exec("comando");


questo e' il metodo per eseguire qualcosa che sia nel path di windows e che sia . exe altrimenti bisogna dirgli ad es. per aprire un file di testo "notepad nomefile.txt"... il mio problema era questo: come faccio ad eseguire file partendo dal pressupposto che non so quale applicazione sia assegnata all'apertura di quella particolare estensione di file?? ad es. poniamo che abbia un file .pdf (e che non sappia che per aprirlo bisogna usare acrobat reader) c'e' un modo per sapere le assegnazioni dei file??

PGI
29-06-2004, 13:37
Supponendo che il sistema operativo appartenga alla famiglia Windows e che il file con estensione xxx abbia un'associazione valida, includi il suo percorso in un URL (chiamiamolo url) e (abracadabra):


Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler "+url);


Immagino esista qualcosa di simile anche per Unix et similia.

Ciao.

kingv
29-06-2004, 14:24
Originariamente inviato da PGI

Immagino esista qualcosa di simile anche per Unix et similia.

Ciao.


sbagli :D

ci sono dei meccanismi ma variano a seconda del WM utilizzato, quindi non ci puoi fare affidamento

PGI
29-06-2004, 16:02
Vuoi dire che in Linux "nun se po fa"? Dai, non ci credo. :eek:.

WM è l'acronimo di? Windows Manager?

kingv
29-06-2004, 16:11
Originariamente inviato da PGI
Vuoi dire che in Linux "nun se po fa"? Dai, non ci credo. :eek:.
WM è l'acronimo di? Windows Manager?

non e' che "nun se po' fa", vedila come un "non funziona così".
non c'e' un unico registro tipo file <-> applicazione, perche' il sistema non saprebbe che farsene.

WM sta per window manager.

cn73
29-06-2004, 16:20
Alcuni sistemi operativi supportano in maniera attiva l'associazione fra il tipo di file e l'applicazione che è in grado di trattare il file stesso. Windows e MAcOs ne sono un esempio...
MSDos non aveva questo tipo di supporto, mentre Unix e LInux lo hanno parzialmente grazie al magic number.

Il test sul magic number è usato per l'analisi dei file con dati in un formato particolare prestabilito. Esempio classico sono i file eseguibili binari (programmi compilati) Questi file hanno un `magic number' salvato in un posto particolare vicino all'inizio del file che dice al sistema operativo UNIX che il file è un eseguibile binario, e di che che tipo fra i molti. Il concetto di `magic number' è stato esteso ai file dati. Qualsiasi file con un qualche identificativo invariante ad un piccolo offset fissato all'interno del file può di solito essere descritto in tal modo. Le informazioni per questi file sono lette dal magic file /etc/magic.

Per leggere il tipo del file si usa il comando


file [ -c ] [ -z ] [ -L ] [ -f nome_file ] [ -m magicfile ] file ...

LukeHack
29-06-2004, 17:13
Originariamente inviato da Mazza2
Runtime.getRuntime().exec("comando");


questo e' il metodo per eseguire qualcosa che sia nel path di windows e che sia . exe altrimenti bisogna dirgli ad es. per aprire un file di testo "notepad nomefile.txt"... il mio problema era questo: come faccio ad eseguire file partendo dal pressupposto che non so quale applicazione sia assegnata all'apertura di quella particolare estensione di file?? ad es. poniamo che abbia un file .pdf (e che non sappia che per aprirlo bisogna usare acrobat reader) c'e' un modo per sapere le assegnazioni dei file??
il caro Mazza2 lavora in winzozz,per cui è suffciente,ipotizzando vuoi aprire un .pdf,la riga:
Runtime.getRuntime().exec("start pippo.pdf");
start infatti è il comando con cui si invoca l'apertura del file da parte di windows,è equivalente al doppio click in pratica;)