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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 514 fois - Téléchargée 20 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
cs_310 Messages postés 21 Date d'inscription dimanche 6 août 2006 Statut Membre Dernière intervention 28 avril 2012
24 avril 2012 à 18:30
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
NHenry Messages postés 15025 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 157
24 avril 2012 à 12:46
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.
cs_Multiprise Messages postés 63 Date d'inscription jeudi 4 décembre 2003 Statut Membre Dernière intervention 23 avril 2013
23 avril 2012 à 19:58
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.
cs_JLN Messages postés 371 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 17 juin 2013
23 avril 2012 à 09:06
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".
MiharbiDoNo Messages postés 150 Date d'inscription dimanche 17 mai 2009 Statut Membre Dernière intervention 25 mai 2012
18 avril 2012 à 22:13
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.