ich brauche die Verzeichnisgröße in VB NETWie berechnet man am besten die Größe eines Verzeichnisses in VB .NET?
Ich weiß, die folgenden 2 Verfahren
Methode 1 zu berechnen: von MSDN http://msdn.microsoft.com/en-us/library/system.io.directory.aspx
‚Das folgende Beispiel berechnet die Größe eines Verzeichnisses ‘ und Unterverzeichnisse, falls vorhanden, und zeigt die Gesamtgröße 'in Bytes an.
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
Methode 2: von What's the best way to calculate the size of a directory in .NET?
Dim size As Int64 = (From strFile In My.Computer.FileSystem.GetFiles(strFolder, _
FileIO.SearchOption.SearchAllSubDirectories) _
Select New System.IO.FileInfo(strFile).Length).Sum()
Beide Verfahren funktionieren. Sie benötigen jedoch viel Zeit, um die Verzeichnisgröße zu berechnen, wenn viele Unterordner vorhanden sind. Zum Beispiel habe ich ein Verzeichnis mit 150.000 Unterordnern. Die obigen Methoden benötigten ungefähr 1 Stunde 30 Minuten, um die Größe des Verzeichnisses zu berechnen. Wenn ich jedoch die Größe von Fenstern überprüfe, dauert es weniger als eine Minute.
Bitte schlagen Sie bessere und schnellere Möglichkeiten vor, um die Größe des Verzeichnisses zu berechnen.
@ Magicprog.fr, schöne Schleife Gesamtgröße zu erhalten. Können Sie mir sagen, was ist der Trick mit Zähler hier zurückzusetzen? Warum gibt es immer noch die richtige Ordnergröße mit allen Unterordnern zurück? Ich bekomme es einfach nicht ... – LuckyLuke82