[英]How would I check if a directory is empty in Rust?
我正在開發一個 CLI 工具,該工具避免使用現有文件破壞現有目錄,但不關心該目錄是否不存在或為空。
我知道我可以使用.exists()
來查看PathBuf
指向現有文件/目錄,並使用.is_dir()
來查看它是否是一個目錄,但是我將如何檢查該目錄是否為空?
您可以使用.read_dir()
來獲取目錄條目的迭代器。 .
和..
被跳過,所以如果迭代器上的第next()
調用返回None
你知道目錄是空的。
let is_empty = dir_path_buf.read_dir()?.next().is_none();
如果您使用的是 Unix(實際上是 POSIX),另一種方法是創建一個新的臨時目錄並嘗試將其重命名為PathBuf
的目錄。 rename()
調用與mv
實用程序不同,如果目標不存在或目錄為空,則會重命名目錄。
單行檢查目錄是否可讀且為空:
PathBuf::from("t").read_dir().map(|mut i| i.next().is_none()).unwrap_or(false);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.