我希望有一种简单的方法来做到这一点,但我没有能够发现这一点,即使一些激烈的谷歌。
如何使用boost::filesystem来查找符号链接(在*nix系统上)指向的位置?
如果您使用的是boost::filesystem
的v3版本,您可以使用规范化函数来获得所有符号链接解析的路径。这可能适用于解析符号链接的路径。
例如,如果symm .link是一个符号链接:
boost::filesystem::path resolved = boost::filesystem::canonical( 'sym.link' );
我实际上没有尝试过,所以我可能是错的,但似乎是有意义的。
或者,您可以使用read_symlink
您可以使用版本3的read_symlink()
函数:
path read_symlink(const path& p); path read_symlink(const path& p, system::error_code& ec);
返回:如果
p
解析到一个符号链接,一个包含该符号链接内容的路径对象。否则为空路径对象。抛出:与错误报告中指定的一样。[注:如果p不解析为符号链接,则会产生错误。]