繁体   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