Maison > Java > javaDidacticiel > Pourquoi `file.delete()` échoue-t-il malgré les vérifications d'accessibilité des fichiers ?

Pourquoi `file.delete()` échoue-t-il malgré les vérifications d'accessibilité des fichiers ?

Mary-Kate Olsen
Libérer: 2024-11-04 07:59:02
original
471 Les gens l'ont consulté

Why Does `file.delete()` Fail Despite File Accessibility Checks?

Résoudre l'échec de la suppression malgré les vérifications d'accessibilité des fichiers

Dans une tentative de suppression d'un fichier après avoir utilisé FileOutputStream pour écrire du contenu, la méthode file.delete() renvoie false malgré la vérification existence et accessibilité des fichiers via file.exists(), file.canRead(), file.canWrite() et file.canExecute(). Ce comportement peut être attribué à un bug particulier dans Java.

La méthode writeContent() est correctement utilisée pour écrire du contenu dans le fichier et fermer le flux. Cependant, lors de la tentative de suppression du fichier, celle-ci échoue en raison de la persistance d'une référence au fichier par la machine virtuelle Java (JVM). Pour résoudre ce problème, System.gc() doit être invoqué avant de tenter la suppression. Cela force la JVM à effectuer un garbage collection, libérant la référence au fichier et permettant sa suppression.

Le code révisé avec System.gc() ajouté inclut :

finally
{
    try
    {
        in.close();
        in = null;
        out.flush();
        out.close();
        out = null;
        System.gc();
    }
    catch (IOException e)
    {
        logger.error(e.getMessage());
        e.printStackTrace();
    }
}
Copier après la connexion

En appelant System .gc() dans le bloc enfin, la référence au fichier est supprimée, permettant à file.delete() de supprimer avec succès le fichier.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal