本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。