Maison >Java >javaDidacticiel >Comment calculer efficacement la taille d'un fichier ou d'un dossier en Java ?

Comment calculer efficacement la taille d'un fichier ou d'un dossier en Java ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-29 10:18:02990parcourir

How do you efficiently calculate the size of a file or folder in Java?

Obtenir la taille d'un fichier ou d'un dossier en Java

Récupérer la taille d'un fichier ou d'un dossier est une tâche courante lorsque l'on travaille avec des fichiers en Java. Voici comment le faire efficacement :

Obtenir la taille du fichier

Pour obtenir la taille d'un fichier, vous pouvez utiliser la méthode length() sur un java.io Objet .Fichier. Cela renvoie la longueur du fichier en octets ou 0 si le fichier n'existe pas.

<code class="java">java.io.File file = new java.io.File("myfile.txt");
file.length();</code>

Obtenir la taille du dossier

Obtenir la taille d'un dossier n'est pas aussi simple que d'obtenir la taille d'un fichier. Il n’existe aucun moyen intégré de le faire en Java. Au lieu de cela, vous devez parcourir l'arborescence des répertoires de manière récursive, en accumulant la taille du dossier pour chaque sous-répertoire et fichier :

<code class="java">public static long folderSize(File directory) {
    long length = 0;
    for (File file : directory.listFiles()) {
        if (file.isFile())
            length += file.length();
        else
            length += folderSize(file);
    }
    return length;
}</code>

Attention : La méthode ci-dessus peut rencontrer des problèmes si directory.listFiles() renvoie null ou s'il y a des liens symboliques présents.

Alternative :

Pour un calcul plus robuste de la taille du dossier, envisagez d'utiliser une bibliothèque tierce comme JWalk ou Apache Commons IO . Ces bibliothèques fournissent des solutions plus fiables et complètes pour calculer la taille des dossiers en Java.

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