保留目录条目以便稍后在程序中进一步检查的最佳方法是什么?

问题描述 投票:0回答:1

在使用文件系统时我总是有点困惑。现在让我困惑的是“DirEntry”。我知道运行 read_dir 时我得到了

Result<DirEntry>
的迭代器。 但是 DirEntry 到底是什么?除了 read_dir 之外还有其他方法来获取它吗? 我必须检查并部分比较不同目录中的一些文本文件,其中文件名遵循独特的模式。

现在我使用 read_dir 并仅保留那些遵循该模式的条目。收集完所有这些后,我开始进行比较,时不时地中断以获取一些用户输入。 从我的角度来看,在此期间可能会发生很多事情,直到我需要再次进入条目。因此我想在再次使用之前刷新该条目。我希望在这个令人耳目一新的过程中再次得到一个结果。但我没有找到办法做到这一点。 或者有更好的方法来完成整个任务吗?

rust
1个回答
0
投票

DirEntry
最有用的方面可能是
metadata
方法。您可以使用
Metadata
 重新加载给定路径的 
std::fs::metadata
。因此,要回答您的问题,只需存储
DirEntry
:

的路径即可
let dir_entry = std::fs::read_dir(".").unwrap().next().unwrap().unwrap();
let path = dir_entry.path();
drop(dir_entry);

let metadata = std::fs::metadata(&path).unwrap();

如果文件被删除,它将返回错误。如果您需要处理添加的新文件,则无法替代再次迭代所有

DirEntry

© www.soinside.com 2019 - 2024. All rights reserved.