Maison > Java > javaDidacticiel > le corps du texte

Pourquoi File.delete() renvoie-t-il False malgré l'existence des fichiers et les autorisations ?

Barbara Streisand
Libérer: 2024-11-04 02:03:02
original
882 Les gens l'ont consulté

Why Does File.delete() Return False Despite File Existence and Permissions?

File.delete() renvoie False malgré la vérification de l'existence et des autorisations

Lors de la tentative de suppression d'un fichier après y avoir écrit à l'aide de FileOutputStream, certains utilisateurs rencontrent un problème inattendu où file.delete() renvoie false. Cela se produit malgré le fait que le fichier existe et que toutes les vérifications d'autorisation (.exists(), .canRead(), .canWrite(), .canExecute()) renvoient true.

Après une enquête plus approfondie, il semble qu'un bug subtil existe en Java, ce qui peut empêcher la suppression réussie d'un fichier même lorsque toutes les conditions nécessaires sont remplies. Pour résoudre ce problème, il est crucial d'appeler System.gc() avant de supprimer le fichier.

L'extrait de code suivant intègre cette solution dans la méthode writeContent d'origine :

<code class="java">private void writeContent(File file, String fileContent) {
    FileOutputStream to;
    try {
        to = new FileOutputStream(file);
        to.write(fileContent.getBytes());
        to.flush();
        to.close();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } finally {
        try {
            to.close(); // Close the stream as before
            System.gc(); // Call System.gc() to force garbage collection
        } catch (IOException e) {
            // TODO Handle IOException
        }
    }
}</code>
Copier après la connexion

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