|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Bolzano
Messaggi: 2163
|
[Java] Eliminare un file
Scrivendo un programma in java (primi passi), ho dovuto creare una classe File che andrebbe a sostituire la java.io.File. A questo punto se io applico delete() ad un oggetto di tipo File (mio) ovviamente mi da errore. Perciò cercando in giro ho trovato un codice e l'ho adattato alla mia esigenza:
Codice:
public void del() {
// A File object to represent the filename
java.io.File f = new java.io.File(getName()+".txt");
// Make sure the file or directory exists and isn't write protected
if (!f.exists())
throw new IllegalArgumentException(
"Delete: no such file or directory: " + getName()+".txt");
if (!f.canWrite())
throw new IllegalArgumentException("Delete: write protected: "
+ getName()+".txt");
// If it is a directory, make sure it is empty
if (f.isDirectory()) {
String[] files = f.list();
if (files.length > 0)
throw new IllegalArgumentException(
"Delete: directory not empty: " + getName()+".txt");
}
// Attempt to delete it
boolean success = f.delete();
if (!success)
throw new IllegalArgumentException("Delete: deletion failed");
}
__________________
Vendo...nulla. Cerco...la felicità. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
|
magari è una stupidata....
ma sei sicuro che questo file esista ? java.io.File f = new java.io.File(getName()+".txt"); |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Codice:
... // Make sure the file or directory exists and isn't write protected if (!f.exists()) throw new IllegalArgumentException( "Delete: no such file or directory: " + getName()+".txt"); Invece a chiamare File.delete() il Security Manager chiama SecurityManager.checkDelete(java.lang.String), forse non è la stessa cosa. Sul momento non mi viene in mente nulla, mi ricordo però che a me una volta era capitato di non riuscire a cancellare un file perchè da un'altra parte nel codice avevo dimenticato di chiudere uno Scanner che usavo per leggerci dentro (quindi forse al momento della chiamata a File.delete lo stream relativo al file era ancora aperto e questo causava il problema).
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 21-04-2010 alle 18:29. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Bolzano
Messaggi: 2163
|
Se il file non esistesse mi darebbe l'altro errore.
Ho trovato un altro codice, simile...ma sempre la stessa cosa. Di solito se il Sistema non elimina il file è perchè è in uso. Sembra che la mia applicazione tenga caricato tale file e ovviamente non riesce ad eliminarlo, anche se presente. Ma in questo caso non dovrebbe darmi errore: Codice:
if (!f.canWrite())
throw new IllegalArgumentException("Delete: write protected: "
+ getName()+".txt");
__________________
Vendo...nulla. Cerco...la felicità. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Bolzano
Messaggi: 2163
|
Ho trovato il dilemma. Nel codice prima di tentare di eliminare il file, ho aperto un Filereader su file in questione e avevo dimenticato di dargli il comando close(). Per questo motivo non me lo cancellava... Una volta messo il close(), cancella.
__________________
Vendo...nulla. Cerco...la felicità. |
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Nov 2008
Messaggi: 1
|
Mi avete Salvato da un esaurimento
Ragazzi non sò come ringraziarvi , stavo per impazzire!!! Grazie di cuore per la soluzione!!!
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:52.



















