簡體   English   中英

如何檢查 Rust 中的目錄是否為空?

[英]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.

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