我希望有一种简单的方法可以做到这一点,但即使是一些激烈的谷歌搜索,我也无法发现它。
如何使用boost :: filesystem查找符号链接(在* nix系统上)指向的位置?
答案 0 :(得分:12)
如果您使用boost::filesystem
的v3,则可以使用canonical函数获取已解决所有符号链接的路径。这可能有助于解决符号链接的路径。
例如,如果sym.link是符号链接:
boost::filesystem::path resolved = boost::filesystem::canonical( 'sym.link' );
我实际上并没有尝试这样做,所以我错了,但似乎有道理。
或者,您可能会对read_symlink
感到幸运答案 1 :(得分:5)
您可以使用版本3的read_symlink()
功能:
path read_symlink(const path& p); path read_symlink(const path& p, system::error_code& ec);
返回:如果
p
解析为符号链接,则路径对象包含该符号链接的内容。否则为空路径对象。