使用boost文件系统解析符号链接

时间:2011-12-07 15:36:52

标签: c++ linux boost filesystems

我希望有一种简单的方法可以做到这一点,但即使是一些激烈的谷歌搜索,我也无法发现它。

如何使用boost :: filesystem查找符号链接(在* nix系统上)指向的位置?

2 个答案:

答案 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解析为符号链接,则路径对象包含该符号链接的内容。否则为空路径对象。