Sie könnten sich den Boost.Filesystem
ansehen Bibliothek. Insbesondere gibt es eine Methode equivalent
das scheint genau das zu tun, wonach Sie suchen:
using namespace boost::filesystem;
path p("/path/to/file/one");
path q("/sym_link/to/one");
assert(equivalent(p, q));
Dateisystembibliothek
Seit C++17 können Sie den Standard <filesystem>
verwenden Bibliothek. Die gesuchte Funktion ist equivalent
, unter Namespace std::filesystem
:
bool std::filesystem::equivalent(const std::filesystem::path& p1, const filesystem::path& p2);
Um die Dokumentation zusammenzufassen:Diese Funktion nimmt zwei Pfade als Parameter und gibt true zurück, wenn sie auf dieselbe Datei oder dasselbe Verzeichnis verweisen, andernfalls false. Es gibt auch einen noexcept
Überladung, die einen dritten Parameter akzeptiert:eine std::error_code
um eventuelle Fehler zu speichern.
Weitere Informationen finden Sie in meiner vollständigen Antwort auf eine weitere Frage zum Stapelüberlauf.