using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using DocTools.Dtos; using ZetaLongPaths; namespace DocTools.DBDoc { public abstract class Doc { /// /// 当前应用程序的名称 => DBCHM /// private static string ConfigFileName = Path.GetFileNameWithoutExtension(AppDomain.CurrentDomain.FriendlyName).Replace(".vshost", ""); /// /// 定义配置存放的路径 => C:\Users\用户名\AppData\Local\DBCHM /// public static string AppPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData, Environment.SpecialFolderOption.Create), ConfigFileName); public Doc(DBDto dto, string filter) { this.Dto = dto; this.Filter = filter; this.WorkTmpDir = Path.Combine(AppPath, dto.DBType + "_" + dto.DBName); if (ZlpIOHelper.DirectoryExists(this.WorkTmpDir)) { ZlpIOHelper.DeleteDirectory(this.WorkTmpDir, true); } ZlpIOHelper.CreateDirectory(this.WorkTmpDir); this.Ext = this.Filter.Split(new string[] { "|" }, StringSplitOptions.RemoveEmptyEntries).LastOrDefault()?.Trim('*'); } /// /// 临时文件的存放目录 /// public string WorkTmpDir { get; private set; } /// /// 文件扩展名 /// public string Ext { get; set; } /// /// 数据库Dto /// public DBDto Dto { get; } /// /// 扩展名过滤字符串 /// public string Filter { get; } /// /// 构建生成文档 /// public abstract void Build(string filePath); } }