bonjour
s.v.p si quelqu'un peut me dire comment faire en vb.net pour connaitre la taille d'un dossier et ses sous répértoires.
merçi.
bonjour
s.v.p si quelqu'un peut me dire comment faire en vb.net pour connaitre la taille d'un dossier et ses sous répértoires.
merçi.
Bonjour. Ni le dotnet framework ni les API Windows (à ma connaissance) n'exposent de méthode pour cela. Il faut donc faire ça à la main en additionnant les tailles de tous les fichiers dans ce dossier et ses sous-dossiers, en utilisant la récursivité. Et puisque l'opération peut être longue, mieux vaut la faire sur un autre thread que celui de l'UI.
Regarde de se coté là, tu devrais trouver pas mal d'info
Pour les fichiers
http://msdn.microsoft.com/fr-fr/libr....fileinfo.aspx
Pour les dossiers
http://msdn.microsoft.com/fr-fr/libr...ctoryinfo.aspx
Pour les lecteurs
http://msdn.microsoft.com/fr-fr/libr...driveinfo.aspx
Bonjour
merçi à DonQuiche et Merçi à notre grand réspecté Philipe lassere(cours vb.net2)
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.
merçi encore à donquiche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 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
ce que je ne comprend pas est comment utiliser cela dans un autre thread que celui de l'UI.
merçi!!!
Bonjour.
En résumé, il faut :
* Créer une fonction Calculer qui prend en argument un objet. D'abord elle cast l'argument en string, puis elle appelle Calculer_LaTaille_du_répértoire. Enfin elle lève un événement Complété, voir le point n°3. Deux ou trois lignes de code.
* Créer une fonction Démarrer qui appelera ThreadPool.QueueUserWorkItem (voir exemple) en passant en arguments Calculer et le chemin voulu. Une ligne de code.
* S'abonner à l'événement Complété pour réagir à la fin du calcul. Attention, s'il faut manipuler l'UI depuis cet événement on devra passer par Control.Invoke. Si le handler de l'événement s'appelle QuandComplété par exemple, tu devras ajouter au début : If InvokeRequired Then Invoke(QuandComplété(...)) Else ...
Tu peux calculer la taille d'un dossier sans récursion
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Public Shared Function FolderSize(path As String) As Long Dim size As Long = 0 Dim directoryInfo As New DirectoryInfo(path) Dim files As IEnumerable(Of FileInfo) = directoryInfo.GetFiles("*", SearchOption.AllDirectories) For Each file As FileInfo In files size += file.Length Next Return size End FunctionTu peux utiliser le ThreadPool ou si tu utilises .NET 4 tu peux utiliser les Taskce que je ne comprend pas est comment utiliser cela dans un autre thread que celui de l'UI.
Merçi à vous tous
merçi à Meziantou et à donquiche
avec vous je quiterai rapidement mon niveau débutant encore merçi.
Partager