using PDF_Office.Properties; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PDF_Office.Helper { /// /// 用于创建、获取、删除缓存文件的辅助类 /// 功能模块需要创建缓存文件夹时,统一在此类里处理 /// 临时文件在app启动时进行删除 /// public class CacheFilePath { private static readonly CacheFilePath instance = new CacheFilePath(); public static CacheFilePath Instance => instance; private CacheFilePath() { } /// /// 自定图章缓存文件夹 /// public string CustomStampPath { get { return CreateCacheDirectory("CustomStamp"); } } /// /// 在“文档”路径下创建缓存文件夹,传C:\Users\kdan\Documents\PDF Office 以后的文件夹名 /// /// private string CreateCacheDirectory(string directoryName) { try { string Path = System.IO.Path.Combine(App.CurrentPath, directoryName); System.IO.DirectoryInfo directoryInfo = System.IO.Directory.CreateDirectory(Path); if (directoryInfo.Exists && (directoryInfo.Attributes & System.IO.FileAttributes.ReadOnly) != System.IO.FileAttributes.ReadOnly && (directoryInfo.Attributes & System.IO.FileAttributes.Hidden) != System.IO.FileAttributes.Hidden ) { return Path; } else { return ""; } } catch (Exception) { return ""; } } /// /// 将临时文件添加到待删除列表,app下次启动时删除 /// /// public void AddToDeleteFiles(string file) { //添加时不做是否存在判断,考虑可能每个人调用的顺序不一样,在删除时再做判断 try { if (!Settings.Default.AppProperties.NeedToDeletePath.Contains(file)) { Settings.Default.AppProperties.NeedToDeletePath.Add(file); } Settings.Default.Save(); //Save后,需要调用reload 防止互相占用文件,引起崩溃,具体效果待验证 Settings.Default.Reload(); } catch { } } public void AddToDeleteFiles(List files) { foreach(string file in files) { AddToDeleteFiles(file); } } /// /// 启动时删除临时文件 /// public void ClearDeleteFiles() { try { foreach (string file in Settings.Default.AppProperties.NeedToDeletePath) { if (File.Exists(file)) { File.Delete(file); } } Settings.Default.AppProperties.NeedToDeletePath.Clear(); } catch { } } } }