Eine große Anzahl (> 100 KB) von Dateien mit c # löschen, während die Leistung in einer Webanwendung erhalten bleibt?

Ich versuche a zu entfernengroß Anzahl der Dateien von einem Speicherort (im Großen und Ganzen über 100000), wobei die Aktion von einer Webseite aus gestartet wird. Offensichtlich könnte ich nur verwenden

string[] files = System.IO.Directory.GetFiles("path with files to delete");
foreach (var file in files) {
    IO.File.Delete(file);
}

Directory.GetFileshttp://msdn.microsoft.com/en-us/library/wz42302f.aspx

Diese Methode wurde bereits einige Male gepostet:Wie lösche ich alle Dateien und Ordner in einem Verzeichnis? undLöschen Sie Dateien aus dem Verzeichnis, wenn der Dateiname ein bestimmtes Wort enthält

Das Problem bei dieser Methode ist jedoch, dass, wenn Sie hunderttausend Dateien angegeben haben, dies zu einem Leistungsproblem wird, da zunächst alle Dateipfade generiert werden müssen, bevor sie in einer Schleife durchlaufen werden.

Hinzu kommt, dass eine Webseite auf eine Antwort von einer Methode wartet, die dies ausführt, da Sie sich vorstellen können, dass es ein bisschen blöd aussieht!

Ein Gedanke, den ich hatte, war, dies in einen asychrnonen Webdienstaufruf zu packen, und wenn er abgeschlossen ist, wird eine Antwort auf die Webseite zurückgesendet, die besagt, dass sie entfernt wurden? Vielleicht setzen Sie die Löschmethode in einem separaten Thread? Oder vielleicht sogar einen separaten Batch-Prozess verwenden, um den Löschvorgang durchzuführen?

Ich habe ein ähnliches Problem, wenn ich versuche, die Anzahl der Dateien in einem Verzeichnis zu zählen - wenn es eine große Anzahl von Dateien enthält.

Ich habe mich gefragt, ob das alles ein bisschen übertrieben ist? Das heißt Gibt es eine einfachere Methode, um damit umzugehen? Jede Hilfe wäre dankbar.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage