[C#] Alle Dateien aus einem Verzeichnis löschen

Kleba

Grünschnabel
Hallo Leute,

ich hoffe ihr könnt mir helfen, wobei ich vermute, dass es einen simplen LÖsungsansatz gibt. Habe nur gerade ein Brett vorm Kopf :-/

Es geht eigentlich nur darum, dass alle Dateien (eines bestimmten Typs) aus einem Verzeichnis gelöscht werden. Das eigentlich Problem ist, dass diese Dateien vorher per E-Mail-Attachment versendet werden und dann der Fehler kommt, dass kein Zugriff auf die Dateien möglich ist, weil sie ja angeblich noch verwendet werden.

War eine kleine Aufgabe von der Arbeit. Einer braucht ein kleines Tool, dass alle (in dem Fall .txt) Dateien aus einem Verzeichnis einzeln per Mail verschickt. Da meinte mein Chef, dass wäre doch was für mich. Ist es ja eigtl auch. Aber ich bin jetzt schon die ganze Zeit am probieren und irgendwie will es nicht klappen. Hab mein bisherigen Code auch schon wieder aus Wut gelöscht :-/

Ich bin mir auch nicht ganz sicher ob der die löscht während sie noch als Attachment versendet werden. Dann könnte ich die Zugriffsverletzung ja noch verstehen. Habt ihr eine Idee wie ich das elegant lösen kann? Vielleicht müsst ich ja auch einfach nur ein Sekunden warten bis die Sachen endgültig verschickt sind? Oder werden die in den Speicher geladen und nach dem Versenden nicht wieder freigegeben?

Danke im Voraus für die Hilfe
Kleba

P.S.: Ich bin mir nicht sicher, aber ich glaube das ist mein erste Post:)confused:), hab sonst wohl nur gelesen. Also erstmal: Hallo an alle!
 
Hallo und herzlich Willkommen,

da die Mitarbeiter das Programm scheinbar per Hand starten, könntest du einen Timer in dein Programm einbauen, womit du sagen wir mal alle 5 Sekunden prüfst ob dein Dateityp vorhanden ist, falls ja versuchst du ihn zu löschen, wenns nicht geht würde ja eine Fehlermeldung kommen die du per try/catch abfängst und z.b. in einem Label ausgibst, damit der Benutzer z.B. durch eine MessageBox nicht gestört wird. Gefahr dabei wäre, das der Mitarbeiter vergisst das Programm und es solange weiter Dateien löscht, auch wenn diese nicht verschickt wurden.
 
Timer starten, der alle 10 sek. (frei wählbar) ein Verzeichnis nach Dateien (z.B. *.txt) durchsucht.
Diese Dateien in einen Versand-Ordner verschieben und anschließend Datei für Datei versenden und falls notwendig, löschen.


using System.IO;
using System.Net.Mail;

Damit solltest du dein Problem in den Griff bekommen.
Beim Verschieben ist es sinnvoll, die Dateien zu kopieren und dann zu löschen. Damit erspart man sich einige Probleme
 
Zurück