Hallo,
ich benötige etwas Hilfe, da ich noch nie etwas rekursives programmiert habe...
Ich möchte innerhalb eines Ordners (mit Unterordnern) bestimmte Dateitypen zählen.
Ich habe mich an einer Vorlage orientiert, die ich online gefunden habe.
Irgendwie klappt der Aufruf (in Zeile 12) der Sub Rekursiv nicht - beim debuggen wandert der Cursor einfach weiter und geht nicht in die Sub Rekursiv hinein.
Ich habe gegoogelt, dass man die Sub, die man aufrufen möchte, einfach hinschreibt und in Klammern Objekte übergibt.
Außerdem habe ich die Anzahlen klassenweit deklariert, so dass ich den Array a wohl gar nicht brauche (?)
Bitte helft mir, wie ich es richtig umsetzen kann (die Anzahlen der Dateitypen rekursiv zu ermitteln)...
Vielen Dank...
ich benötige etwas Hilfe, da ich noch nie etwas rekursives programmiert habe...
Ich möchte innerhalb eines Ordners (mit Unterordnern) bestimmte Dateitypen zählen.
Ich habe mich an einer Vorlage orientiert, die ich online gefunden habe.
Irgendwie klappt der Aufruf (in Zeile 12) der Sub Rekursiv nicht - beim debuggen wandert der Cursor einfach weiter und geht nicht in die Sub Rekursiv hinein.
Ich habe gegoogelt, dass man die Sub, die man aufrufen möchte, einfach hinschreibt und in Klammern Objekte übergibt.
Außerdem habe ich die Anzahlen klassenweit deklariert, so dass ich den Array a wohl gar nicht brauche (?)
Bitte helft mir, wie ich es richtig umsetzen kann (die Anzahlen der Dateitypen rekursiv zu ermitteln)...
Vielen Dank...
VB.NET-Quellcode
- Public Class Form1
- Dim Anzahl_jpg As Integer = 0, Anzahl_tif As Integer = 0, Anzahl_pdf As Integer = 0
- Dim a(2) As Integer
- Private Sub ButtonOrdnerWählen_Click(sender As Object, e As EventArgs) Handles ButtonOrdnerWählen.Click
- Dim ordner As IO.DirectoryInfo
- Dim pfad As String = ""
- If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then
- pfad = FolderBrowserDialog1.SelectedPath
- End If
- ordner = New IO.DirectoryInfo(pfad)
- 'alle Dateien des Ordners ermitteln
- Rekursiv(ordner)
- Anzahl_jpg = a(0)
- Anzahl_tif = a(1)
- Anzahl_pdf = a(2)
- Me.Label_jpg_Anzahl.Text = Anzahl_jpg.ToString()
- Me.Label_jpg_Anzahl.Text = Anzahl_tif.ToString()
- Me.Label_jpg_Anzahl.Text = Anzahl_pdf.ToString()
- End Sub
- Private Sub Rekursiv(ByVal ordner As IO.DirectoryInfo)
- Dim unterordner As IO.DirectoryInfo
- Dim datei As IO.FileInfo
- ' zunächst alle Dateien des Ordners aufspüren
- For Each datei In ordner.GetFiles()
- a = endu(datei)
- Next
- ' Jetzt alle Unterverzeichnis durchlaufen
- ' und die Prozedur rekursiv selbst aufrufen
- For Each unterordner In ordner.GetDirectories()
- Rekursiv(unterordner)
- Next
- End Sub
- Function endu(datei As IO.FileInfo) As Array
- Dim dateiname As String, posBeginnEndung As Integer, nameEndung As String
- dateiname = ""
- posBeginnEndung = 0
- nameEndung = ""
- dateiname = datei.Name.ToString()
- posBeginnEndung = InStr(dateiname, ".") + 1
- nameEndung = dateiname.Substring(posBeginnEndung)
- 'jpg-Ermittlung (auch jpeg)
- If nameEndung.Contains("jp") Or nameEndung.Contains("JP") Then
- Anzahl_jpg += 1
- End If
- 'tif-Ermittlung
- If nameEndung.Contains("tif") Or nameEndung.Contains("TIF") Then
- Anzahl_tif += 1
- End If
- 'pdf-Ermittlung
- If nameEndung.Contains("pdf") Or nameEndung.Contains("PDF") Then
- Anzahl_pdf += 1
- End If
- a(0) = Anzahl_jpg
- a(1) = Anzahl_tif
- a(2) = Anzahl_pdf
- Return a
- End Function
- End Class