Calculer la taille d'un dossier et ser sou_répértoires

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 481 fois - Téléchargée 18 fois

Contenu du snippet

Viola pour calculer la taille d'un répértoire j'ai utilisé cette sub:
Calculer_LaTaille_du_répértoire.
en utilisant l'événement click d'un bouton dont le nom est "Bttaille" et FolderBrowserDialog dont le nom est Fbd j'arrive à connaitre la taille de n'importe quel répértoire .voila tout est résumé dans le code suivant.

Source / Exemple :


imports system.io
public class form1
    Dim Chemin As String
    Dim v, TailleTotale As Double
    Dim Dossiers, Fichiers, Dossier
Sub Calculer_LaTaille_du_répértoire(ByVal MonChemin As String)
 
        Dim DossiersInfo As DirectoryInfo = My.Computer.FileSystem.GetDirectoryInfo(MonChemin )
        Dossiers = DossiersInfo.GetDirectories
        Fichiers = DossiersInfo.GetFiles
        'Parcourir Les Fichiers
 
        For Each Fichier As FileInfo In Fichiers
            'lire la taille du fichier (fileinfo) et la placer dans la variable v
         v += Fichier.Length
        Next
        'Parcourir les sous-répertoires
        For Each sousRepertoire As String In Directory.GetDirectories(monchemin)
 
            'Appel de manière récursive 'Calculer_LaTaille_du_répértoire pour calculer la taille du contenu des sous répertoires.
            Calculer_LaTaille_du_répértoire(sousRepertoire)
        Next
 
    End Sub
Private Sub Bttaille_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtParcourir.Click
        v = 0
        TailleTotale = 0
        Fbd.ShowDialog()
        chemin = Fbd.SelectedPath
        Calculer_LaTaille_du_répértoire(Chemin)
        TailleTotale = v
       msgbox("La taille de Votre répértoire est : " & v.tostring,vbinformation,"Calculer La taille d'un Répértoire")
    End Sub
 
 
end class

Conclusion :


j'attends vous conclusions.
merçi

A voir également

Ajouter un commentaire

Commentaires

Messages postés
21
Date d'inscription
dimanche 6 août 2006
Statut
Membre
Dernière intervention
28 avril 2012

bonjour
pour ceux qui n'aiment as la récrsivité ,je vous invite à voir le nouveau code utilisant simplement une seule fonction public dans un module:
CALCULER LA TAILLE D'UN DOSSIER ET SER SOU_RÉPÉRTOIRES VERSION 2
Messages postés
14729
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
4 octobre 2020
144
Multiprise,

De nos jours, les compilateurs optimisent ce type de comportement dans un programme, certes cela fait des appels, sur des appels, mais ne pose que rarement problème (sauf dans le cas d'une récursion infinie).
Ce type de solution est souvent plus esthétique et maintenable que de passer par d'autres méthodes.

Si en pas à pas, tu vois les différents appels, rien en dit si en exécution c'est traduit de la même manière.
Messages postés
63
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
23 avril 2013

Petite remarque, une procédure ou une fonction qui s'appelle en boucle (dite récursive), conduit la plupart du temps à un dépassement de pile si le nombre de boucles est important, fais un test en pas à pas et regarde l'état de la pile à chacun des appels, c'est édifiant. Une solution plus élégante et surtout beaucoups moins dévoreuse de ressources, serait de faire appel à une fonction externe à laquel seront transmis les paramètres nécessaires. Ce n'est pas très grave dans un programme simple de quelques lignes, mais cela le devient lorsque la mémoire est très sollicitée dans un programme plus complexe.
Messages postés
371
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
17 juin 2013

Pour GABILACH,
Sans vouloir être corrosif, corriges tes fautes avant de parler de celles des autres.
"sa fait", "appart" etc...
Moi aussi je n'aime pas lire du sms, alors je comprends quand même.
Pour 310 (car c'est là le plus important)
Je suis d'accord avec NHENRI tu devrais utiliser une fonction récursive.
Utilisée dans un module, cela permettrait de l'utiliser dans tous les programmes ayant recours à cette fonction.
L'idée de GABILACH concernant la réduction de la taille à un format plus standard est peut-être à prendre aussi et pourquoi pas (soyons fou) avec une variable booléenne "Optional".
Messages postés
150
Date d'inscription
dimanche 17 mai 2009
Statut
Membre
Dernière intervention
25 mai 2012

pourquoi un double comme type pour la variable v? plutot un Uint64.
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.