namespace MeetingAssistant; public static class VaultPath { public static string Resolve(string path) { var expanded = Environment.ExpandEnvironmentVariables(path); if (expanded.StartsWith("~", StringComparison.Ordinal)) { expanded = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), expanded[1..].TrimStart(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar)); } return Path.GetFullPath(expanded); } public static string Resolve(VaultOptions vault, string path) { var expanded = Environment.ExpandEnvironmentVariables(path); if (Path.IsPathRooted(expanded) || expanded.StartsWith("~", StringComparison.Ordinal)) { return Resolve(expanded); } return Path.GetFullPath(Path.Combine(Resolve(vault.BaseFolder), expanded)); } }