Estoy tratando de eliminar un archivo en una carpeta y la carpeta en sí, sino que sólo elimina la carpeta en momentos aleatorios. ¿Por que sucede? Si sigo machacando el botón de borrado con el tiempo se elimina.
private void deleteCourseButtonMouseClicked(java.awt.event.MouseEvent evt) {
File dltcycle = new File(C.viewcoursedirectory);
System.out.println(dltcycle.getAbsolutePath());
String[] cycle = dltcycle.list();
for (int i = 0; i < cycle.length; i++) {
File dlt = new File(C.viewcoursedirectory + "\\" + cycle[i]);
System.out.println(C.viewcoursedirectory + "\\" + cycle[i]);
System.out.println(dlt.getAbsolutePath());
dlt.delete();
}
dltcycle.delete();
}
El resultado esperado es para la carpeta en el directorio que desea eliminar de forma coherente. No es a veces al azar después de machacar el botón de borrar. Lo siento si el bloque de código se ve feo, no se sabe muy bien cómo dar formato a él. No sé por qué el "{" y "}" no están apareciendo en el bloque de código: X.
La causa más común para este tipo de comportamiento es una corriente filtrada. Si, por ejemplo, escribir un archivo mediante un FileOutputStream y de alguna manera no lo hace cerca de ella, se cerró finalmente cuando se obtiene de referencia basura recogida.
Comprobar (si se abre el archivo, ya sea con flujos de entrada o de salida) si el flujo está siempre cerrado.