簡體   English   中英

如何檢查 Rust 中是否存在符號鏈接,而不是它指向的文件?

[英]How to check if a symlink, not the file it points to, exists in Rust?

Path::exists不合適,因為它的文檔指出:

該函數將遍歷符號鏈接以查詢有關目標文件的信息。 如果符號鏈接斷開,這將返回 false。

另一種選擇是使用std::fs::symlink_metadata ( docs )。

在不遵循符號鏈接的情況下查詢有關文件的元數據。 此函數將返回錯誤... [當] path不存在時。

這樣做的好處是返回的Metadata結構包含一個FileType結構 ( docs ),您可以通過它查詢路徑是普通文件、目錄還是符號鏈接。 如果可能的結果不僅僅是“鏈接存在”和“鏈接不存在”,這可能很有用。

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

此函數在以下情況下會返回錯誤,但不僅限於這些情況:

  • 路徑不是符號鏈接。
  • 路徑不存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM