2025-02-28 16:11:48 -07:00

96 lines
2.5 KiB
C#

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<string, string>();
}
public string Name { get; set; }
public Dictionary<string, string> 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<string, string>();
this.Files = new List<SnappedFile>();
}
public string Name { get; set; }
public string Path { get; set; }
public Dictionary<string, string> Properties { get; set; }
public List<SnappedFile> 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 "";
}
}
}