internal static void Remove(IEnumerable <FileInfo> files, Action onSuccess = null) { var q = string.Format("Удалить файлы ({0}) ?", files.Count()); if (MessageBox.Show(q, "Внимание!", MessageBoxButton.YesNo, MessageBoxImage.Warning) != MessageBoxResult.Yes) { return; } var removed = new List <long>(); foreach (var file in files) { try { var length = file.Length; file.Delete(); removed.Add(length); } catch (Exception exc) { var msg = "Ошибка: " + exc.Message + Environment.NewLine + "Продолжить удаление других файлов?"; var result = MessageBox.Show(msg, "Ошибка", MessageBoxButton.YesNo, MessageBoxImage.Error); if (result == MessageBoxResult.No) { break; } } } if (onSuccess != null) { onSuccess(); } var info = "Удалено файлов: " + removed.Count; if (removed.Count > 0) { info += Environment.NewLine + "Суммарный размер удаленных файлов: " + FileSizeConverter.SizeToString(removed.Sum()); } MessageBox.Show(info, string.Empty, MessageBoxButton.OK, MessageBoxImage.Information); }