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
Susan Sarandonoriginal
2024-11-04 03:16:02648parcourir

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>

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!

Déclaration:
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