internal void DeleteFile(List <string> pathFileList, bool alsoFolder) { // удаление файлов из дерева (остаются только пустые папки если в них нет файлов) string folder = null; TreeFiles files = null; List <string> folders = new List <string>(); for (int i = 0; i < pathFileList.Count; i++) { string file = pathFileList[i]; int n = file.LastIndexOf('\\') + 1; if (folder == null) { folder = file.Remove(n); files = treeFiles[folder]; folders.Add(folder); } string f = file.Remove(n); if (f != folder) { folder = f; files = treeFiles[folder]; folders.Add(folder); } files.RemoveFile(file); } if (alsoFolder) { foreach (var f in folders) { RemoveEmptyFolder(f); } } TotalFiles -= pathFileList.Count; // удаление файлов из Dat if (dat.RemoveFiles(pathFileList)) { shouldSave = SaveType.New; } }