una todos texto registro puede los fichero eliminar elimina directorio delete datos cómo copiar contenido como carpeta borrar archivos archivo java file io delete-file

java - todos - ¿Cómo verificar si puedo eliminar un archivo?



file.delete java no elimina (2)

¿Cómo puedo verificar que puedo eliminar un archivo en Java?

Por ejemplo, debería poder eliminar el archivo C:/file.txt pero nunca podré eliminar C:/ o Computer , ni My Documents etc.

La solución descrita en posible duplicado no funciona para mí.


La eliminación del archivo requiere un permiso de escritura del elemento principal del archivo, es decir, el directorio donde se almacena el archivo. El directorio en Java también está representado por una instancia de la clase java.io.File que tiene el método canWrite() .

Por lo tanto, para verificar si el archivo puede eliminarse, debe llamar a file.getParent().canWrite() .


En mi caja de Windows 7 de 64 bits con NTFS y Java 7 (Oracle JDK), lo único que funcionó para mí de manera confiable es

boolean canDelete = file.renameTo(file)

Esto es sorprendentemente simple y funciona también para las carpetas, que tienen "en algún lugar debajo" de un archivo "abierto" o "bloqueado".

Otras cosas que intenté y produje falsos positivos: adquirir FileLock, File # canWrite, File # setLastModified ("touch"), file.getParent (). CanWrite ()