Zufälligen Ordner löschen

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Forev3r.

    Zufälligen Ordner löschen

    Hallo Com!

    Ich habe folgendes Problem:

    Ich möchte ein Programm bauen, dass mehrere bestimmte Ordner löschen soll, also sozusagen als Erleichterung.
    Jedoch wird ein Ordner beim erstellen immer mit zufallszahlen benannt, z.B. "985483" oder "653234".
    Wie kann ich diesen Ordner jedes mal ausfindig machen und löschen lassen (wie ich ordner lösche weiß ich, es liegt nur daran, dass der Ordner immer anders heißt)

    Vielen Dank schon mal ;)
    Du schriebst die Ordner werden mit Zufallszahlen benannt, machst Du das selbst oder kommt das woanders her?

    Wenn Du die selbst mit Zufallszahlen benennst, kannst Du evtl. noch ein Wort irgendwie vorne oder hinten an den Ordnernamen dranpacken
    und per Contains prüfen.
    @orangenbaumblatt : sie werden ZUFÄLLIG generiert ;)

    Nein, die kommen von woanders her.

    Und da ich das Verzeichnis, wo der Ordner drin ist und die anderen Files darin noch brauch, kann ich auch nicht einfach das übergeordnete Verzeichnis löschen..
    Dann durchläufst du eben alle ordner in dem ordner und prüfst ob er ins suchkriterium hineinfällt um ihn gegebenfalls zu löschen.
    Ein bisschen eigeniniziative währ hier nicht fehl am Platz!
    Solche Sachen wurden schon 1000 mal behandelt!
    -- Fullquote entfernt --
    Die Idee hatte ich ja auch :) So bin ich ja nicht! An dem Problem sitz ich jetzt schon über 48 Stunden und komm halt nicht weiter! Das Problem ist nur, dass in dem Ordner ca 20 von solchen 5-Zahlen-Ordnern liegen und nur 3 davon gelöscht werden sollen. So langsam hab ich das Gefühl, das ist unlösbar :D

    MfG

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „der_Kurt“ ()

    Problem: Die einzige Gemeinsamkeit ist, dass sie 5-stellig sind und das haben auch welche, die nicht gelöscht werden sollen. Ansonsten sind sie komplett zufällig.

    Und was soll ich euch denn noch angeben?
    - 5-Stellige Ordner
    - Nur Zahlen
    - Manche sollen gelöscht werden, manche nicht.
    - Zufällige Zahlen

    Was fehlt noch?

    VB.NET-Quellcode

    1. Private Function LoadAllDirectories(ByVal Pat As String) As String()
    2. Return Directory.GetDirectories(Pat).Where(Function(d) Regex.IsMatch(Path.GetFileNameWithoutExtension(d), "(\d{5,5})")).ToArray)
    3. End Function
    4. Private Function GetSubDirs(ByVal P As String) As List(Of String)
    5. Dim Filez As New List(Of String)
    6. For Each f As String In Directory.GetFiles(P)
    7. Filez.Add(Path.GetFileNameWithOutExtension(f))
    8. Next
    9. Return Filez
    10. End Function
    11. Private Sub Doit()
    12. Dim NotAllowed As String() = {"Lara", "Annika", "Monique"}
    13. For Each p As String In LoadAllDirectories("C:\")
    14. Dim s As List(Of String) = GetSubDirs(p)
    15. If NotAllowed.Any(Function(c) Not s.Contains(c)) Then File.Delete(p)
    16. Next
    17. End Sub


    Im String() NotAllowed bestimmst Du was im Ordner nicht vorkommen darf, sollte das vorkommen so wird der Ordner nicht gelöscht.
    Ich weiss nicht wie Du sonst prüfen willst, ob der Ordner gebraucht wird oder nicht, dafür hast Du zu wenig Infos gegeben.

    Sollte mein Post Dir nicht 100% helfen, hast Du zumindest eine Grundlage an der Du dich orientieren kannst.

    Ich weiss Code an Newbies geben soll man nicht machen, aber ist ja Ostern. Sorry, ich habe gesündigt.
    -- Fullquote entfernt --
    Whoa wie blöd .___. Danke dir :D In den Ordnern wo was gelöscht werden soll, liegen immer die selben Dateien xD Dann kann ich die als Suchkriterium verwenden :D
    Mann ey, warum komm ich da nich gleich drauf? -.-

    Aber danke :DD

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „der_Kurt“ ()

    Problem natürlich gelöst ^^ Nur jetzt wieder neues Problem^^

    Wie bekomme ich es hin, in einem Ordner alle Dateien, die mit "au" beginnen, zu löschen ?
    z.B.: audfk45384.txt, au34djf.exe, usw.

    So hab ichs schon probiert, hat aber nicht geklappt:

    VB.NET-Quellcode

    1. IO.File.Delete("F:\Ordner\Ordner\au*.*")


    Fehler werden zunächst keine Angezeigt, doch beim Debuggen wirds dann doch gelb hinterlegt mit folgendem Error:

    "ArgumentException wurde nicht behandelt. Illegales Zeichen im Pfad."

    Wird wohl an den Sternchen liegen.. Wie kann ich das anders lösen?
    Du musst die Namen des Ordners überprüfen.
    Sieh dir dir ersten 2 Zeichen an und überprüfe auf "au".
    Wenn Du nicht weißt wie man Text (String) zerschneiden/vergleichen, halt verarbeiten kann, schau dir die String-Methoden Tabelle an: MSDN

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Eistee“ ()

    @Eistee : Danke :)

    Edit: Habs mir angeschaut und tippe mal auf "Contains".

    Aber wie fasse ich das in Code? Habs mal so mal so ausprobiert, aber will irgendwie nicht klappen.

    Edit2: Hat sich doch erledigt! Danke Eistee ;)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Forev3r“ ()