Beispiel #1
0
        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;
            }
        }