Lösen Sie Symlinks mit dem Boost-Dateisystem

8

Ich erwarte, dass es einen einfachen Weg gibt, dies zu tun, aber ich habe es nicht einmal mit einem intensiven Googlen entdeckt.

Wie kann ich mit boost :: filesystem den Ort finden, auf den ein Symlink (on * nix systems) zeigt?

    
Optimized Life 07.12.2011, 15:36
quelle

2 Antworten

11

Wenn Sie v3 von boost::filesystem verwenden, können Sie das kanonische Funktion, um einen Pfad mit allen aufgelösten Symlinks zu erhalten. Dies kann für die Auflösung des Pfades Ihres Symlinks funktionieren.

Zum Beispiel, wenn sym.link ein Symlink ist:

%Vor%

Ich habe das nicht wirklich versucht, also könnte ich falsch liegen, scheint aber Sinn zu ergeben.

Alternativ können Sie etwas Glück mit read_symlink

    
obmarg 07.12.2011 15:46
quelle
5

Sie können die read_symlink() verwenden Funktion der Version 3:

%Vor%      

Rückgabe : Wenn p eine symbolische Verbindung löst, ein Pfadobjekt, das den Inhalt dieser symbolischen Verbindung enthält. Ansonsten ein leeres Pfadobjekt.

    
Daniel Trebbien 07.12.2011 15:50
quelle

Tags und Links