Я пытаюсь удалить количество больших файлов из местоположения (большим я имею в виду более 100000), посредством чего действие инициируется с веб-страницы. Очевидно, я мог бы просто использовать
string[] files = System.IO.Directory.GetFiles("path with files to delete");
foreach (var file in files) {
IO.File.Delete(file);
}
Directory.GetFiles http://msdn.microsoft.com/en-us/library/wz42302f.aspx
Этот метод уже был опубликован несколько раз: Как удалить все файлы и папки в каталоге? а также Удалить файлы из каталога, если имя файла содержит определенное слово
Но проблема с этим методом заключается в том, что если вы скажете сто тысяч файлов, это становится проблемой производительности, так как она должна сначала сгенерировать все пути к файлу, прежде чем перебирать их.
Добавлен к этому, если веб-страница ждет ответа от метода, который выполняет это, поскольку вы можете себе представить, что это будет выглядеть немного мусором!
Мне показалось, что я должен был обернуть это в айшнорный веб-сервисный вызов, и когда он завершит его, он возвращает ответ на веб-страницу, чтобы сказать, что они были удалены? Может быть, поместите метод delete в отдельный поток? Или, возможно, даже использовать отдельный пакетный процесс для выполнения удаления?
У меня есть аналогичная проблема при попытке подсчета количества файлов в каталоге - если она содержит большое количество файлов.
Мне было интересно, все это немного переборщило? То есть есть ли более простой способ справиться с этим? Любая помощь будет оценена.