"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Étude de cas : Détermination de la taille du répertoire

Étude de cas : Détermination de la taille du répertoire

Publié le 2024-08-09
Parcourir:489

Les méthodes récursives sont efficaces pour résoudre des problèmes avec des structures récursives. Les exemples précédents peuvent facilement être résolus sans utiliser de récursivité. Cette section présente un problème difficile à résoudre sans utiliser la récursion. Le problème est de trouver la taille d'un répertoire. La taille d'un répertoire est la somme des tailles de tous les fichiers du répertoire. Un répertoire d peut contenir des sous-répertoires. Supposons qu'un répertoire contienne les fichiers f1, f2, ... , fm et les sous-répertoires d1, d2, ... , dn, comme le montre la figure ci-dessous.

Image description

La taille du répertoire peut être définie de manière récursive comme suit :

taille(d) = taille(f1) taille(f2) ... taille(fm) taille(d1) taille(d2) ... taille(dn)

La classe File peut être utilisée pour représenter un fichier ou un répertoire et obtenir les propriétés des fichiers et des répertoires. Deux méthodes de la classe File sont utiles pour ce problème :

  • La méthode length() renvoie la taille d'un fichier.
  • La méthode listFiles() renvoie un tableau d'objets File sous un répertoire.

Le code ci-dessous donne un programme qui invite l'utilisateur à saisir un répertoire ou un fichier et affiche sa taille.

Image description

Si l'objet file représente un répertoire (ligne 20), chaque sous-élément (fichier ou sous-répertoire) du répertoire est invoqué de manière récursive pour obtenir sa taille (ligne 23). Si l'objet file représente un fichier (ligne 26), la taille du fichier est obtenue et ajoutée à la taille totale (ligne 27).

Que se passe-t-il si un répertoire incorrect ou inexistant est saisi ? Le programme détectera qu'il ne s'agit pas d'un répertoire et invoquera file.length() (ligne 27), qui renvoie 0. Ainsi, dans ce cas, la méthode getSize retournera 0.

Pour éviter les erreurs, c'est une bonne pratique de tester tous les cas. Par exemple, vous devez tester le programme pour une entrée de fichier, un répertoire vide, un répertoire inexistant et un fichier inexistant.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/paulike/case-study-finding-the-directory-size-2946?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3