Quelle est la meilleure façon de calculer la taille d'un répertoire dans VB .NET?

J'ai besoin de calculer la taille de répertoire dans VB .Net

Je sais que les 2 méthodes suivantes

Méthode 1: à partir de MSDN http://msdn.microsoft.com/en-us/library/system.io.directory.aspx

' L'exemple suivant calcule la taille d'un répertoire
"et ses sous-répertoires, et affiche la taille totale
'en octets.

Imports System
Imports System.IO

Public Class ShowDirSize

Public Shared Function DirSize(ByVal d As DirectoryInfo) As Long
    Dim Size As Long = 0
    ' Add file sizes.
    Dim fis As FileInfo() = d.GetFiles()
    Dim fi As FileInfo
    For Each fi In fis
        Size += fi.Length
    Next fi
    ' Add subdirectory sizes.
    Dim dis As DirectoryInfo() = d.GetDirectories()
    Dim di As DirectoryInfo
    For Each di In dis
        Size += DirSize(di)
    Next di
    Return Size
End Function 'DirSize

Public Shared Sub Main(ByVal args() As String)
    If args.Length <> 1 Then
        Console.WriteLine("You must provide a directory argument at the command line.")
    Else
        Dim d As New DirectoryInfo(args(0))
        Dim dsize As Long = DirSize(d)
        Console.WriteLine("The size of {0} and its subdirectories is {1} bytes.", d, dsize)
    End If
End Sub 'Main
End Class 'ShowDirSize

Méthode 2: à partir de Quelle est la meilleure façon de calculer la taille d'un répertoire .NET?

Dim size As Int64 = (From strFile In My.Computer.FileSystem.GetFiles(strFolder, _
              FileIO.SearchOption.SearchAllSubDirectories) _
              Select New System.IO.FileInfo(strFile).Length).Sum()

Ces deux méthodes fonctionnent bien. Cependant, ils prennent beaucoup de temps pour calculer la taille de répertoire si il y a beaucoup de sous-dossiers. e.g, j'ai un répertoire avec 150 000 sous-dossiers. Les méthodes ci-dessus a pris environ 1 heure 30 minutes pour calculer la taille de l'annuaire. Cependant, si je vérifie la taille de windows, il prend moins d'une minute.

Veuillez vous proposer la meilleure et la plus rapide façon de calculer la taille de l'annuaire.

OriginalL'auteur Virendra | 2010-07-08