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 ""; } } }