Schreibe eine Klasse die das Mounten analog zu Linux Dateisystemen implementiert.
<mountPath>=><absolutePath>"/"=>"C:\\Users\\admin\\documents""/work"=>"W:\\Dokumente""/nas"=>"N:\\documents""/work/kunde1"=>"W:\\kunde1""/work/kunde2"=>"W:\\kunde2""/work/kunde1/shared"=>"W:\\shared""/work/kunde2/shared"=>"W:\\shared"
class Mounts
{
public:
/// absoluteBasePath wird im root mountPath "/" gemounted
Mounts(string absoluteBasePath);
/// liefert den absoluten Pfad für jeden beliebigen mountPath
string absolutePath(string mountPath) const;
/// liefert alle gemounten Pfade zu einem absoluten Pfad
vector<string> allMountPathes(string absolutePath) const;
/// sucht alle Mountpunkte als pair<mountPath, absolutePath> unterhalb einem mountPath
vector<pair<string, string>> getMountPointsBelow(string mountPath) const;
/// fügt einen neuen Mauntpunkt hinzu
void mount(string mountPath, string absolutePath);
/// löscht einen Mountpunkt an dem absoluten Pfad
void unmountAbsolute(string absolutePath);
/// löscht alle Mountpunkte im mountPath
void unmountBelow(string mountPath);
};$> absolutePath("/work/kunde1/Vertrag.doc");
=> "W:\\kunde1\\Vertrag.doc"$> allMountPathes("W:\\shared\\Styleguide.md");
=> ["/work/kunde1/shared/Styleguide.md", "/work/kunde2/shared/Styleguide.md"]$> getMountPointsBelow("/work/kunde1");
=> [pair("/work/kunde1", "W:\\kunde1"), pair("/work/kunde1/shared", "W:\\shared")]