Fortlaufend nummerierte Dateien

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von bla.

    Fortlaufend nummerierte Dateien

    Hallo.

    Ich hab einen Ordner mit folgenden Dateien:

    Quellcode

    1. bild0001.png
    2. bild0005.jpeg
    3. bild1234.png
    4. bild4321.jpeg
    5. bildprogramm.exe
    6. bildwalzer.wav


    Jetzt suche ich die höchste Zahl bei den Bildern. In diesem Fall wäre das 4321 (egal ob png oder jpeg).

    Soweit bin ich:

    VB.NET-Quellcode

    1. Dim x As String() = IO.Directory.GetFiles("C:\Users\User\Downloads\Bilder", "bild????.*")
    2. Array.Sort(x)


    Ich wollte mir mittels SearchPattern die Suche erleichtern, klappt aber leider nicht so, wie ich will.
    Ich wollte halt genau nur die Dateien raussuchen mit folgendem Muster: "bildXXXX.Y
    Wobei X für genau eine Zahl steht und Y für alles möglich (ob 100 Buchstaben oder 1 Zahl).
    Leider funktioniert das mit dem Pattern bild????.* nicht.

    Kann mir da jemand weiterhelfen?
    Für ein Mindestmaß an Rechtschreibung, Interpunktion und Majuskeln!
    Entweder Bu benennst die Dateien so um, dass Array.Sort greift oder Du schreibst einen eigenen Sortieralgoritmmus (Bubble-Sort, Quick-Sort, ...).
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ich habs jetzt nochmal per RegEx hinbekommen:

    VB.NET-Quellcode

    1. Private Function Letzte_Nummer(pfad As String, pattern As String) As String
    2. Dim arr As String() = IO.Directory.GetFiles(pfad, pattern)
    3. Array.Sort(arr)
    4. Array.Reverse(arr)
    5. For i As Integer = 0 To arr.Length - 1
    6. Dim regex As Regex = New Regex("[0-9][0-9][0-9][0-9]")
    7. Dim match As Match = regex.Match(arr(i))
    8. If match.Success Then
    9. Return (Integer.Parse(match.Value) + 1).ToString("0000")
    10. End If
    11. Next
    12. Return "0001"
    13. End Function
    Für ein Mindestmaß an Rechtschreibung, Interpunktion und Majuskeln!