Function std::fs::read_dir 1.0.0[−][src]
pub fn read_dir<P: AsRef<Path>>(path: P) -> Result<ReadDir>
Expand description
返回目录中条目的迭代器。
迭代器将产生 io::Result
<
DirEntry
>
的实例。
最初构造迭代器后,可能会遇到新的错误。
平台特定的行为
该函数当前对应于 Unix 上的 opendir
函数和 Windows 上的 FindFirstFile
函数。
推进迭代器当前对应于 Unix 上的 readdir
和 Windows 上的 FindNextFile
。
注意,这个 may change in the future。
该迭代器返回条目的顺序取决于平台和文件系统。
Errors
在以下情况下,此函数将返回错误,但不仅限于这些情况:
- 提供的
path
不存在。 - 该进程没有查看内容的权限。
path
指向非目录文件。
Examples
use std::io; use std::fs::{self, DirEntry}; use std::path::Path; // 一种只访问文件的目录的可能实现 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(()) }Run
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>>()?; // 不保证 `read_dir` 返回条目的顺序。 // 如果需要可重复的排序,则应对条目进行显式排序。 entries.sort(); // 现在,条目已按其路径排序。 Ok(()) }Run