Feedback

Ordnergröße ermitteln

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

4 Kommentare

  1. 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!

  2. [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 😀