nur Unterordner löschen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

    nur Unterordner löschen

    Mahlzeit,

    ich steh gerade etwas auf dem Schlauch (is eh peinlich) und zwar versuche ich aus einem Ordner alle Unterordner zu löschen.
    Ich dachte es würde einfach mit Directory.Delete(folder, True) funktionieren. Da bekomme ich aber eine Exception das mir der Zugriff verweigert wird.
    Weiters bin ich dahinter gekommen das ich mit dieser Vorgehensweise den Ordner selbst auch lösche, was nicht Sinn der Sache sein soll.
    Muss ich den Ordner zuerst Rekrusiv durchgehen bevor ich den Inhalt löschen kann? Wenn ich den Ordner mit .GetFiles durchgehe gilt das auch für Verzeichnisse?

    Mfg
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.

    Snaptu schrieb:

    Verzeichnisse
    bekommst Du so:

    VB.NET-Quellcode

    1. Dim di() = New IO.DirectoryInfo("c:\temp").GetDirectories("*.*", IO.SearchOption.AllDirectories)
    Die haben eine Property Attribut, das kannst Du ggf. abfragen, ob es löschbar ist.
    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!
    Danke euch ;) Manchmal löst sich der Knoten nur wenn mehrere Hirne zusammenarbeiten :D

    VB.NET-Quellcode

    1. If cb_erase.Checked Then
    2. Dim folder() = New DirectoryInfo(fbd_path.SelectedPath).GetDirectories("*.*", SearchOption.AllDirectories)
    3. folder(0).Delete(True)
    4. End If


    Jetzt noch schnell umbauen das es mir alle Ordner löscht und feddisch <-- würde RoD sagen :D
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.
    mach:

    VB.NET-Quellcode

    1. try
    2. ' dein code
    3. Catch ex As Exception
    4. end try

    und das ganze als admin starten
    in den projekteinstellungen kann man das auch ändern das der das programm nur mit admin rechten ausführt.
    dann sagt der das du das program nochmal mit admin rechten neu starten musst (also visual basic) und dann kannst das auch schon starten.(es kann sein dass das nicht ganz klappt weil ich nur .net 3.5 benutze)
    @Die Wucht Was soll das bringen? Damit werden nur sämtliche Exceptions unterdrückt, was absolut falsch ist. Im Falle eines Fehlers kannste nämlich dann lange suchen, was ja keinen Sinn macht. Diese sind nämlich etwas Gutes und stattdessen sollte man sie passend behandeln. TryCatch ist ein heißes Eisen

    Ansonsten ist das Thema von 2014. Also bitte in Zukunft nicht so alte Threads ausgraben.
    Thema geschlossen . ~Trade
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: