Ich benutze WinXP. Ich benutze Java, um eine Liste von Dateien zu erstellen. Die Datei wird zuerst als abc.txt.temp erstellt und nach Abschluss der Generierung wird sie in abc.txt umbenannt.Wie finde ich heraus, warum renameTo() fehlgeschlagen ist?
Beim Generieren der Dateien konnten jedoch einige der Dateien nicht umbenannt werden. Es geschieht zufällig.
Gibt es trotzdem den Grund warum es fehlgeschlagen ist?
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();
Und das Ergebnis:
[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
Ich mag würde einen systematischen Ansatz wissen, den Grund herauszufinden. Vielen Dank.
Fangen Sie irgendwelche Ausnahmen, die ausgelöst werden? – seth
nein. keine Ausnahme. Es gibt nur falsch zurück. – janetsmith
Ich aktualisierte meine Antwort. –