本文简要介绍rust语言中 Function std::fs::read_dir
的用法。
用法
pub fn read_dir<P: AsRef<Path>>(path: P) -> Result<ReadDir>
返回目录中条目的迭代器。
迭代器将产生 io::Result<DirEntry>
的实例。最初构造迭代器后可能会遇到新错误。当前目录和父目录(通常是 .
和 ..
)的条目将被跳过。
特定于平台的行为
该函数当前对应于 Unix 上的 opendir
函数和 Windows 上的 FindFirstFile
函数。推进迭代器当前对应于 Unix 上的 readdir
和 Windows 上的 FindNextFile
。请注意,这个may change in the future。
此迭代器返回条目的顺序取决于平台和文件系统。
错误
此函数会在以下情况下返回错误,但不仅限于这些情况:
- 提供的
path
不存在。 - 该进程没有查看内容的权限。
path
指向一个非目录文件。
例子
use std::io;
use std::fs::{self, DirEntry};
use std::path::Path;
// one possible implementation of walking a directory only visiting files
fn visit_dirs(dir: &Path, cb: &dyn Fn(&DirEntry)) -> io::Result<()> {
if dir.is_dir() {
for entry in fs::read_dir(dir)? {
let entry = entry?;
let path = entry.path();
if path.is_dir() {
visit_dirs(&path, cb)?;
} else {
cb(&entry);
}
}
}
Ok(())
}
use std::{fs, io};
fn main() -> io::Result<()> {
let mut entries = fs::read_dir(".")?
.map(|res| res.map(|e| e.path()))
.collect::<Result<Vec<_>, io::Error>>()?;
// The order in which `read_dir` returns entries is not guaranteed. If reproducible
// ordering is required the entries should be explicitly sorted.
entries.sort();
// The entries have now been sorted by their path.
Ok(())
}
相关用法
- Rust read_to_string用法及代码示例
- Rust read_link用法及代码示例
- Rust read_unaligned用法及代码示例
- Rust read_volatile用法及代码示例
- Rust read用法及代码示例
- Rust ready用法及代码示例
- Rust rename用法及代码示例
- Rust remove_dir_all用法及代码示例
- Rust remove_file用法及代码示例
- Rust resume_unwind用法及代码示例
- Rust repeat用法及代码示例
- Rust remove_dir用法及代码示例
- Rust remove_var用法及代码示例
- Rust repeat_with用法及代码示例
- Rust replace用法及代码示例
- Rust range用法及代码示例
- Rust UdpSocket.set_multicast_loop_v6用法及代码示例
- Rust i64.overflowing_add_unsigned用法及代码示例
- Rust Box.downcast用法及代码示例
- Rust BTreeMap.last_key_value用法及代码示例
- Rust str.make_ascii_uppercase用法及代码示例
- Rust u128.checked_pow用法及代码示例
- Rust usize.wrapping_mul用法及代码示例
- Rust AtomicU8.fetch_sub用法及代码示例
- Rust PanicInfo.payload用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Function std::fs::read_dir。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。