using System; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using System.Linq; namespace TweetDuck.Core.Utils{ static class BrowserCache{ private static bool ClearOnExit { get; set; } public static readonly string CacheFolder = Path.Combine(Program.StoragePath, "Cache"); private static IEnumerable<string> CacheFiles => Directory.EnumerateFiles(CacheFolder); public static void CalculateCacheSize(Action<Task<long>> callbackBytes){ Task<long> task = new Task<long>(() => { return CacheFiles.Select(file => { try{ return new FileInfo(file).Length; }catch{ return 0L; } }).Sum(); }); task.ContinueWith(callbackBytes); task.Start(); } public static void SetClearOnExit(){ ClearOnExit = true; } public static void Exit(){ if (ClearOnExit){ foreach(string file in CacheFiles){ try{ File.Delete(file); }catch{ // welp, too bad } } } } } }