| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | using System.Collections.Generic;using System.IO;namespace VEngine{    public sealed class ClearHistory : Operation    {        public readonly List<string> files = new List<string>();        private int count;        public override void Start()        {            base.Start();            files.AddRange(Directory.GetFiles(Versions.DownloadDataPath));            var usedFiles = new List<string>();            var manifest = Versions.Manifest;            usedFiles.Add(Manifest.GetVersionFile(manifest.name));            usedFiles.Add(manifest.name);            foreach (var bundle in manifest.bundles)            {                if (string.IsNullOrEmpty(bundle.nameWithAppendHash)) continue;                usedFiles.Add(bundle.nameWithAppendHash);            }            files.RemoveAll(file =>            {                var name = Path.GetFileName(file);                return usedFiles.Contains(name);            });            count = files.Count;        }        protected override void Update()        {            if (status == OperationStatus.Processing)            {                while (files.Count > 0)                {                    progress = (count - files.Count) * 1f / count;                    var file = files[0];                    if (File.Exists(file)) File.Delete(file);                    files.RemoveAt(0);                    if (Updater.Instance.busy) break;                }                Finish();            }        }    }}
 |