public static void Main()
path = "%MYDOCUMENTS%\\Dev";
path = "%MYDOCUMENTS%\\Prod";
string expandedPath = Environment.ExpandEnvironmentVariables(path);
Console.WriteLine("expandedPath: {0}", expandedPath);
Console.WriteLine("MyDocumentsForTesting: {0}", AuxiliaryFolderStructure.MyDocumentsForTesting);
Console.WriteLine("MyDocuments: {0}", AuxiliaryFolderStructure.MyDocuments);
Console.WriteLine("MyDocumentsInUse: {0}", AuxiliaryFolderStructure.MyDocumentsInUse);
Console.WriteLine("MyDocuments: {0}", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
Console.WriteLine("ROOT: {0}", AuxiliaryFolderStructure.ROOT);
Console.WriteLine("Pacientes: {0}", AuxiliaryFolderStructure.Pacientes);
public class AuxiliaryFolderStructure
const string pathForTesting = "C:\\Users\\Marcelo\\source\\repo\\ForTests";
const string pathForProduction = "D:\\My Documents\\";
const string pathPacientes = "Consultório Impressos\\Pacientes";
public string Path { get; private set; }
private string _rootForFolderStructure;
public static string ROOT;
public string RootForFolderStructure
return _rootForFolderStructure;
public static readonly AuxiliaryFolderStructure MyDocuments = new AuxiliaryFolderStructure(pathForProduction);
public static readonly AuxiliaryFolderStructure MyDocumentsForTesting = new AuxiliaryFolderStructure(pathForTesting);
public static readonly AuxiliaryFolderStructure MyDocumentsInUse = new AuxiliaryFolderStructure();
public static readonly AuxiliaryFolderStructure Pacientes = new AuxiliaryFolderStructure(ROOT.CombinePaths(pathPacientes));
private AuxiliaryFolderStructure()
_rootForFolderStructure = Environment.ExpandEnvironmentVariables(pathForTesting);
_rootForFolderStructure = Environment.ExpandEnvironmentVariables(pathForProduction);
private AuxiliaryFolderStructure(string path) : this()
ROOT = _rootForFolderStructure;
public override string ToString()
return string.IsNullOrEmpty(Path) ? _rootForFolderStructure : Path;
public static class EasyOfficeFolderExtensions
public static string CombinePaths(this string pathWithRoot, string pathDistal)
return Path.Combine(pathWithRoot, pathDistal);