rust :我想得到最后修改的文件在一个目录

qgelzfjb  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(164)

语言:rust
我已经在Python中这样做了:

file = max([f for f in os.scandir("files")], key=lambda x: x.stat().st_mtime).name

现在我想把它也弄到生 rust 的地方。
我想得到一个目录中最后修改的文件。这是我如何读取目录:

let filecheck = fs::read_dir(path)
for path in filecheck {

}

但是我不知道如何使用metadata::modified函数来获取修改日期的列表,然后获取最新的。
我试着使用元数据::修改函数,并期望得到我想要的结果。我得到的是哪里的错误。

mrfwxfqh

mrfwxfqh1#

以后,请描述您在尝试解决问题时遇到的错误。
下面是一个rust代码片段,它扫描当前目录并打印出最近的文件:

use std::fs;

fn main() {
    let mut entries: Vec<fs::DirEntry> = fs::read_dir(".")
        .expect("Couldn't access local directory")
        .flatten() // Remove failed
        .collect();
    entries.sort_by_cached_key(|f| f.metadata().unwrap().modified().unwrap());

    println!("Most recent file: {:?}", entries[0]);
}

请注意expectunwrap的几种用法。访问文件元数据并不保证一定会成功。为了简单起见,上面的程序假定它总是会成功。

相关问题