Feedback

VB - Größe aller Dateien in einem Ordner ermitteln

Veröffentlicht von am 11/3/2013
(1 Bewertungen)
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

Christian Jakobovic schrieb am 10/26/2016:
Kleinen Fehler entdeckt:

Bei der Suche in den Unterordnern wird GetFileSizesOfFolder aufgerufen.
Das 's' nach 'GetFileSize' muss weg.
Danke für das praktische Snippet!
 

Logge dich ein, um hier zu kommentieren!