標準ライブラリのみ使用したコードです。
use std::fs; // Rustの標準ライブラリからfsを使用する
use std::path::Path; // Rustの標準ライブラリからPathを使用する
fn main() {
// プログラムのメイン関数
// "./"というパスを表すPath型のインスタンスを生成し、pathにバインド
let path = Path::new("./");
// read_dir()でpathに存在するエントリーのイテレータを取得し、
//forループで一つずつ処理する
for entry in fs::read_dir(path).unwrap() {
// unwrap()でエントリーの取得に失敗した場合は
//panicし、成功した場合はentryにバインドする
let entry = entry.unwrap();
// unwrap()でfile_typeの取得に失敗した場合はpanicし、
//成功した場合はfile_typeにバインドする
let file_type = entry.file_type().unwrap();
// entryがディレクトリかどうかをチェックする
if file_type.is_dir() {
// エントリーのパスを表示する
println!("{}", entry.path().display());
}
}
}
指定されたディレクトリ内のすべてのディレクトリを再帰的に検索し、そのパスを表示します。
コメント