如何在Rust中检查符号链接本身(而非指向的文件)是否存在?
别用
Path::exists检查损坏的符号链接! 刚踩过这个坑,必须提醒你:当你需要判断损坏的符号链接本身是否存在时,Path::exists完全不适用,原因看官方文档的说明就懂了:
该函数会遍历符号链接以查询目标文件的信息。对于损坏的符号链接,此函数会返回false。
简单来说,Path::exists关注的是符号链接指向的目标文件是否有效存在,而不是符号链接这个文件本身。哪怕你磁盘上确实有这个符号链接,但它指向的文件被删除或者路径不对,Path::exists就会返回false——这显然和你想检查“这个链接有没有被创建”的需求完全不符。
如果要确认符号链接本身是否存在(不管目标是否可达),正确的做法是先调用Path::is_symlink判断它是否是符号链接,再结合其他方式验证其本身的存在性。
内容的提问来源于stack exchange,提问作者I60R
相关产品推荐
相关产品推荐

