Sto usando WinXP. Io uso Java per generare un elenco di file. Il file verrà creato come abc.txt.temp all'inizio e, dopo aver completato la generazione, verrà rinominato in abc.txt.Come scoprire perché renameTo() non è riuscito?
Tuttavia, durante la generazione dei file, alcuni file non sono stati rinominati. Accade casualmente.
C'è comunque qualche motivo per scoprire perché non è riuscito?
int maxRetries = 60;
logger.debug("retry");
while (maxRetries-- > 0)
{
if (isSuccess = file.renameTo(file2))
{
break;
}
try
{
logger.debug("retry " + maxRetries);
Thread.sleep(1000);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//file.renameTo(file2);
Thread.currentThread().getThreadGroup().getParent().list();
E il risultato:
[DEBUG][2009-08-25 08:57:52,386] - retry 1
[DEBUG][2009-08-25 08:57:53,386] - retry 0
java.lang.ThreadGroup[name=system,maxpri=10]
Thread[Reference Handler,10,system]
Thread[Finalizer,8,system]
Thread[Signal Dispatcher,9,system]
Thread[Attach Listener,5,system]
java.lang.ThreadGroup[name=main,maxpri=10]
Thread[main,5,main]
Thread[log4j mail appender,5,main]
[DEBUG][2009-08-25 08:57:54,386] - isSuccess:false
vorrei sapere un approccio sistematico per capire il motivo. Grazie.
Stai riscontrando eccezioni generate? – seth
no. nessuna eccezione. Restituisce solo falso. – janetsmith
Ho aggiornato la mia risposta. –