Estoy usando WinXP. Yo uso java para generar una lista de archivos. El archivo se creará como abc.txt.temp al principio, y después de completar la generación, se cambiará a abc.txt.¿Cómo saber por qué renameTo() falló?
Sin embargo, cuando generaba los archivos, algunos de los archivos no se podían renombrar. Sucede al azar.
¿Hay alguna forma de averiguar el motivo por el que falló?
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();
Y el resultado:
[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
me gustaría saber un enfoque sistemático para averiguar la razón. Gracias.
¿Está atrapando las excepciones que se lanzan? – seth
no. ninguna excepción en absoluto. Solo devuelve falso. – janetsmith
Actualicé mi respuesta. –