Dieser Code summiert die Größe aller Dateien in einem Ordner. Je nach Parameter auch mit den Dateien in den Unterordnern.
Der 3. Parameter gibt an, ob bei dem Auftreten einer UnauthorizedAccessException die Ausführung abgebrochen wird oder ob die jeweiligen Dateien bzw. Ordner ignoriert werden.
''' <summary>
''' Ermittelt die Größe der Dateien in einem Ordner.
''' </summary>
''' <param name="path">Der Pfad des Ordners.</param>
''' <param name="subFolder">Gibt an, ob Unterordner berücksichtigt werden sollen.</param>
''' <param name="ignoreException">Gibt an, ob das Auftreten einer <see cref="System.UnauthorizedAccessException"/> ignoriert werden soll oder nicht.</param>
Function GetFileSizeOfFolder(path As String, subFolder As Boolean, ignoreException As Boolean) As Long
Dim n As Long = 0
Try
For Each file In Directory.GetFiles(path) 'Alle Dateien durch gehen'
Try
n += New FileInfo(file).Length 'Dateigröße hinzufügen'
Catch ex As UnauthorizedAccessException
If Not ignoreException Then
Throw ex
End If
End Try
Next
If subFolder Then
For Each folder In Directory.GetDirectories(path) 'Alle Ordner durch gehen'
n += GetFileSizesOfFolder(folder, subFolder, ignoreException) 'Größe der Unterordner-Dateien dazu addieren'
Next
End If
Catch ex As UnauthorizedAccessException
If Not ignoreException Then
Throw ex
End If
End Try
Return n
End Function
1 Kommentare zum Snippet