Sprache: VB
Diese Funktion ermittelt die Größe eines Ordners und gibt diese in Byte zurück. Dabei werden die Unterordner natürlich mit einbezogen
Public Class FolderSize
Private Shared FolderSize As Long = 0
''' <summary>
''' Diese Funktion ermittelt die Größe eines Ordners und gibt diese in Byte zurück
''' </summary>
''' <param name="Root">Der Ordner dessen Größe ausgelesen werden soll</param>
Public Shared Function GetFolderSize(ByVal Root As String) As Long
FolderSize = 0
SeekFiles(Root)
Return FolderSize
End Function
Private Shared Sub SeekFiles(ByVal Root As String)
Dim Files() As String = System.IO.Directory.GetFiles(Root)
Dim Folders() As String = System.IO.Directory.GetDirectories(Root)
For i As Integer = 0 To Files.Length - 1
FolderSize += FileLen(Files(i))
Next
For i As Integer = 0 To Folders.Length - 1
SeekFiles(Folders(i))
Next
End Sub
End Class
Public Class FolderSize
Private Shared FolderSize As Long = 0
''' <summary>
''' Diese Funktion ermittelt die Größe eines Ordners und gibt diese in Byte zurück
''' </summary>
''' <param name="Root">Der Ordner dessen Größe ausgelesen werden soll</param>
Public Shared Function GetFolderSize(ByVal Root As String) As Long
FolderSize = 0
SeekFiles(Root)
Return FolderSize
End Function
Private Shared Sub SeekFiles(ByVal Root As String)
Dim Files() As String = System.IO.Directory.GetFiles(Root)
Dim Folders() As String = System.IO.Directory.GetDirectories(Root)
For i As Integer = 0 To Files.Length - 1
FolderSize += FileLen(Files(i))
Next
For i As Integer = 0 To Folders.Length - 1
SeekFiles(Folders(i))
Next
End Sub
End Class
Alte URL:
/snippet/ordnergroesse-ermitteln/330
Dank „static“ kann man die Funktion genau einmal pro Programmlauf verwenden – sehr unbrauchbar.
Ich hatte die Funktion erst neu geschrieben und habe das ganz vergessen. Ich werde es dann in einer Klasse kapseln.
Aber das ist typisch, gute Snippets werden selten bewertet aber sobald irgendeiner einen „schlechten“ Snippet findet wo er sofort einen Fehler entdeckt, dann wird der Snippet SOFORT schlecht bewertet!
[Dank „static“ kann man die Funktion genau einmal pro Programmlauf verwenden – sehr unbrauchbar.]
Mein Gott DU bist vielleicht ne „Mimi“ – EIN WENIG selbst programmieren kann man wohl noch , oder ?!
So gehts immer:
[code]Private Function GetFolderSize(ByVal folder As String) As Long
Dim FolderSize As Long = 0
FolderSize = SeekFiles(folder)
Return FolderSize
End Function
Private Function SeekFiles(ByVal folder As String)
Dim Foldersize As Long = 0
Dim Files() As String = System.IO.Directory.GetFiles(folder)
Dim Folders() As String = System.IO.Directory.GetDirectories(folder)
For i As Integer = 0 To Files.Length – 1
FolderSize += FileLen(Files(i))
Next
For i As Integer = 0 To Folders.Length – 1
Foldersize += SeekFiles(Folders(i))
Next
Return Foldersize
End Function [/code]
von mir ne stehende Unendlich 😀