using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Snap2HTML { public class SnapSettings { public string rootFolder { get; set; } public string title { get; set; } public string outputFile { get; set; } public bool skipHiddenItems { get; set; } public bool skipSystemItems { get; set; } public bool openInBrowser { get; set; } public bool linkFiles { get; set; } public string linkRoot { get; set; } public SnapSettings() { this.skipHiddenItems = true; this.skipSystemItems = true; this.openInBrowser = false; this.linkFiles = false; this.linkRoot = ""; } } public class SnappedFile { public SnappedFile(string name) { this.Name = name; this.Properties = new Dictionary(); } public string Name { get; set; } public Dictionary Properties { get; set; } public string GetProp(string key) { if (this.Properties.ContainsKey(key)) return this.Properties[key]; else return ""; } } public class SnappedFolder { public SnappedFolder(string name, string path) { this.Name = name; this.Path = path; this.Properties = new Dictionary(); this.Files = new List(); } public string Name { get; set; } public string Path { get; set; } public Dictionary Properties { get; set; } public List Files { get; set; } public string GetFullPath() { string path; if (this.Path.EndsWith(@"\")) path = this.Path + this.Name; else path = this.Path + @"\" + this.Name; if (path.EndsWith(@"\")) // remove trailing backslash { if (!Utils.IsWildcardMatch(@"?:\", path, false)) // except for drive letters { path = path.Remove(path.Length - 1); } } return path; } public string GetProp(string key) { if (this.Properties.ContainsKey(key)) return this.Properties[key]; else return ""; } } }