如何检查Rust中是否存在符号链接,而不是它指向的文件?

时间:2018-03-14 16:31:09

标签: rust

Path::exists不适合,因为其文档说明:

  

此函数将遍历符号链接以查询有关目标文件的信息。如果符号链接断开,则返回false。

2 个答案:

答案 0 :(得分:4)

std::fs::read_link似乎就是你想要的。

  

此功能将在以下情况下返回错误,但不仅限于以下情况:

     
      
  • 路径不是符号链接。
  •   
  • 路径不存在。
  •   

此功能的文档为here

答案 1 :(得分:4)

另一种选择是使用std::fs::symlink_metadatadocs)。

  

在不遵循符号链接的情况下查询有关文件的元数据。   此函数将返回错误... [当] path不存在时。

这样做的好处是返回的Metadata结构包含FileType结构(docs),您可以查询该路径是普通文件,目录还是象征性的联系。如果可能的结果超过"链接存在"这可能是有用的。和"链接不存在"。