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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 980 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

NHenry
Messages postés
14552
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
15 septembre 2019
135 -
Bonsoir,

Ton code serait plus à sa place sur www.codyx.org.
Sinon, à la place d'utiliser une variable globale, utilises plutôt une fonction récursive à la place d'une Sub récursive.
Gabilach
Messages postés
200
Date d'inscription
mercredi 2 mars 2011
Statut
Membre
Dernière intervention
28 septembre 2014
-
Je te conseille de corriger toutes tes fautes dans la conclusion et la description sa fait pas zoli zoli :O.
Mais sinon source assez utile mise appart qu'il faudrait convertir le résultat que l'on obtient basiquement en Octets en Méga Octets par exemple pour que sa soit plus "propre" ^^ !
MiharbiDoNo
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.
cs_JLN
Messages postés
373
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".
cs_Multiprise
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.

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.