Maison > Java > javaDidacticiel > Pourquoi `File.delete()` renvoie-t-il False même lorsque le fichier existe et dispose d'autorisations ?

Pourquoi `File.delete()` renvoie-t-il False même lorsque le fichier existe et dispose d'autorisations ?

Susan Sarandon
Libérer: 2024-11-04 03:16:02
original
651 Les gens l'ont consulté

Why Does `File.delete()` Return False Even When the File Exists and Has Permissions?

File.delete() renvoie False malgré l'existence du fichier et les autorisations

Q : Je rencontre un problème où file.delete() La méthode renvoie false, même si file.exists(), file.canRead(), file.canWrite() et file.canExecute() renvoient tous true. Quelle pourrait être la cause de cela ?

R : Malgré les vérifications de l'existence des fichiers et des autorisations, vous pouvez toujours rencontrer ce problème en raison d'un bug dans Java. Pour surmonter cela, il est crucial d'incorporer les étapes suivantes :

  1. Assurer la fermeture du flux : dans votre code, vous avez vidé et fermé le flux de sortie après avoir écrit le contenu. Cependant, vous devez également vérifier que le flux d'entrée est fermé, le cas échéant.
  2. Invoquer System.gc() : une dernière étape cruciale consiste à appeler System.gc(), ce qui libère toutes les ressources système associées à le fichier. Ceci est nécessaire pour terminer le processus de suppression avec succès.

L'intégration de ces étapes dans votre code devrait résoudre le problème :

<code class="java">public void deleteFile() {
    FileOutputStream to = null;
    FileInputStream in = null;
    try {
        in = new FileInputStream(file);
        to = new FileOutputStream(file);
        to.write(fileContent.getBytes());
        to.flush();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            in.close();
            in = null;
            to.flush();
            to.close();
            to = null;
            System.gc();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // Attempt to delete file
    if (file.delete()) {
        // Delete successful
    } else {
        // Handle unsuccessful deletion
    }
}</code>
Copier après la connexion

En suivant ces suggestions, vous pouvez surmonter ce problème et assurez-vous que le processus de suppression du fichier est terminé avec succès.

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