Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [JAVA]Il file non viene cancellato

    Ho fatto un frame con un JmenuItem che quando viene premuto deve svolgere qsto codice:

    if(e.getActionCommand().equals("inserisci nuovo progetto"))
    {
    File toDelete = new File("scritto.xml");
    toDelete.delete();
    Bean bean= new Bean();
    ins.insert(1,bean); //mi fa partire una finestra
    }

    la prima volta ke lo faccio cioè qndo avvio x la prima volta il programma il file viene cancellato...
    mentre se kiudo la finestra ke mi fa partire ins.insert e poi ripremo sul jmenuitem "inserisci nuovo progetto" il file nn viene cancellato!
    Xkè? nn mi deve fare sballare!!!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Anzi tutto, correggi così:
    codice:
    if ( !toDelete.delete() ) {
       // C'è stato un errore... messaggio a video??
    }
    Poi devi cercare di capire perchè non lo cancella.
    Le cause possono essere molteplici:

    1) Il file non esiste
    2) Il file è in uso da un'altra applicazione (o dalla stessa!!)
    3) Non hai i permessi per cancellarlo


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Grazie...
    infatti mi da errore se lo provo x la seconda volta...
    sicuramente è xkè il file è in uso...
    cosa e come posso fare?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Beh... hai due possibilità:

    1) Aspetti che il file non sia più in uso
    2) Se è la tua applicazione ad usarlo, devi ricordarti di chiudere il file ogni volta che termini di usarlo.

    Per il primo aspetto, io mi sono già trovato in questa situazione e l'ho risolta nel seguente modo:

    1) Mantengo una lista di tutti i file che devo cancellare
    2) Provo a cancellare il primo
    3) Se ci riesco vado avanti nella lista e ricomincio col secondo, altrimenti attendo 5 secondi prima di riprovare a cancellarlo (nel mio caso, 5 secondi sono sufficienti al programma che usa il file per terminare il suo lavoro).

    Nota che la mia scelta è dovuta a queste considerazioni:

    1) Il file che risulta essere in uso non lo sarà per più di 5-6 secondi
    2) Il programma che usa il file da cancellare termina sempre e comunque, rilasciando il file.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    grazieeeeee...!!!
    premettendo ke senza di te(ti do del tu) non avrei mai pensato al fatto di kiudere i file.
    Infatti il problema era solo quello... mancava un close()...
    adesso sembra funzionare l'intero programma...!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.