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