Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347

    [JAVA] - File Temporanei

    Buon pomeriggio,
    sto creando un file temporaneo nel seguente modo:

    codice:
    File temp = File.createTempFile(name, "." + suffix);
    
    // Cancello il file temporaneo quando la JVM termina
    temp.deleteOnExit();
    ma quando l'applicazione finisce, il file resta nella cartella temporanea e non si elimina.
    Ho provato a riavviare anche la macchina ma il file persiste.

    Qualcuno mi sa dare una spiegazione?

    thanx
    nh

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,280

    Re: [JAVA] - File Temporanei

    Originariamente inviato da newhook
    ma quando l'applicazione finisce, il file resta nella cartella temporanea e non si elimina.
    Con cosa l'hai creato poi fisicamente? Es. con FileOutputStream o altro simile??? Bene. Qualunque cosa hai usato, devi farne il close().
    Da una prova veloce che ho fatto es.:

    codice:
    import java.io.*;
    
    public class Prova {
        public static void main(String[] args) throws IOException {
            File temp = File.createTempFile("aaa", ".xyz");
            temp.deleteOnExit();
            FileOutputStream fos = new FileOutputStream(temp);
        }
    }
    Se non chiudi esplicitamente lo stream, anche se c'è il deleteOnExit(), non lo elimina. Questo almeno da quanto ho visto su Windows (XP).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    si, lo chiudevo
    stavo in debug, ed in debug non cancella..bha...


    thanx
    nh

  4. #4
    Ciao a tutti,
    sempre per restare in tema sui file temp, volevo sapere se era possibile, una volta creato un file temporaneo, fare in modo di aprirlo in automatico!
    Grazie mille!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    Con cosa lo vuoi lanciare? per esempio con il notepad?
    ok, una volta creato il file, tramite getPath() ti fai dare il percorso.


    e poi Runtime.getRuntime().exec("notepad.exe " + tuoFile.getPath());

  6. #6
    si, intedevo aprire il file.
    i file possono essere pdf, immagini (qlsiasi estensione), .doc , .xls ecc ecc
    devo farmi uno switch-case a seconda del tipo di estensione o esiste una direttiva generica?!?
    In ogni caso grazie mille, gentilissimo!

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    347
    su due piedi ti dire di farti una factory o usare uno switch ma forse puoi già trovare qualcosa...
    non saprei

  8. #8
    Originariamente inviato da newhook
    su due piedi ti dire di farti una factory o usare uno switch ma forse puoi già trovare qualcosa...
    non saprei
    Ho risolto con questa direttiva:

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

    che consente di aprire il file con il programma associato al tipo di estensione.

    Grazie ancora!
    Alla prossima!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.