C# Ordner nach x Tagen löschen?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Eine der "einfachsten" Möglichkeiten ist die:

  1. Lege ein Objekt von System.Collections.Generic.Stack<System.IO.DirectoryInfo> an und füge das Startverzeichnis der Operation hinzu.
  2. Nimm eine while-Schleife, in deren Bedingung überprüft wird, ob das Stack-Objekt > 0 Elemente hat.
  3. Nimm das oberste Element vom Stack und lass dir mittels der Methode System.IO.DirectoryInfo.GetDirectories() die Unterverzeichnisse auflisten.
  4. Überprüfe nun für jedes Unterverzeichnis, ob es älter als 8 Tage ist. (Verwende dazu die Eigenschaft System.IO.DirectoryInfo.CreationTime; kleiner Tipp: System.DateTime - System.DateTime = System.TimeSpan)
  5. Wenn das Verzeichnis älter als 8 Tage ist, verwende die Methode System.IO.DirectoryInfo.Delete(bool recursive) mit dem Parameter true um das Verzeichnis rekursiv zu löschen.
  6. Ansonsten pack das Unterverzeichnis auf den Stack.

Anmerkung: Achte darauf, die ggf. auftretenden Exceptions korrekt zu handlen. (System.UnauthorizedAccessException, System.IO.DirectoryNotFoundException und System.IO.IOException)

P.S.: Du wolltest zwar nicht den ganzen Code, aber für den Fall, dass du deine Meinung diesbezüglich mal ändern solltest, folge einfach diesem Link: https://pastebin.com/K6kT3s4g ^^

derDennis99de 
Fragesteller
 08.10.2018, 20:33

hallo ich habe es soweit jetzt hinbekommen. Problem ist jetzt, dass das Programm nicht damit klar kommt das der Ordner nicht leer ist..

0

Cc cleaner kann als tool direkt auf c zugreifen ganz einfach und hast dazu noch ein gutes Reinigungs tool

Isendrak  08.10.2018, 17:15

Warum genau muss es hier eigentlich (fast) immer einen geben, der die Frage nicht ließt und dann auch noch eine völlig an der Frage vorbeigehende "Antwort" gibt?!

-.-

1

In C# gibt es die Directory und DirectoryInfo Klasse. Diese zielen auf Ordner, statt auf Dateien.

Womöglich musst du aber über die Directory Klasse alle Dateien in Schleife löschen und dann erst die Ordner.

Woher ich das weiß:Berufserfahrung – Berufserfahrung