Rustでファイル一覧を取得する
main.rs
――――――――――――――――――――
use std::env;
use std::fs;
use std::path::PathBuf;
fn main() {
let current_dir = env::current_dir().unwrap();
let mut dir_vec = fs::read_dir(¤t_dir).unwrap()
.map(|result| result.unwrap().path())
.filter(|path_buf| path_buf.is_dir())
.collect::<Vec<PathBuf>>();
dir_vec.sort();
println!("ディレクトリ一覧");
for path_buf in dir_vec {
println!("{}", path_buf.display());
}
let mut file_vec = fs::read_dir(¤t_dir).unwrap()
.map(|result| result.unwrap().path())
.filter(|path_buf| path_buf.is_file())
.collect::<Vec<PathBuf>>();
file_vec.sort();
println!("ファイル一覧");
for path_buf in file_vec {
println!("{}", path_buf.display());
}
}
――――――――――――――――――――
コピペする場合は2文字の全角空白を4文字の半角空白に置換してください。
ちなみに、
Iteratorにはsortが無いです。
Vecにはfilterが無いです。
ところで、mapで全ての要素の型を変換する前に、filterで要素を取捨選択したほうが効率が良さそうだったのですが、filterしてからmapするコードを書いてみたのですが、コンパイル エラーに成りました。何か解決方法が有るのかもしれませんが、著者には分かりませんでした。まだまだRustの勉強が足りないようです。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます