gpt4 book ai didi

c++ - 从 std::filesystem::directory_iterator() 获取最后一个文件名而不迭代?

转载 作者:行者123 更新时间:2023-12-03 10:05:14 29 4
gpt4 key购买 nike

我正在尝试获取最后一个文件名。
下面的代码非常优雅。但它正在遍历目录中的所有文件。
是否可以在不迭代的情况下获取最后一个文件?

#include <filesystem>
std::string latestFileName;
for (const auto &entry : fs::directory_iterator("/media/jai/Entertainment"))
latestFileName = entry.path();
std::cout << latestFileName << std::endl;
已编辑:目录中的文件已按字母顺序递增。我想选择最新的文件,它已经确定是按字母顺序排列的最后一个文件。由于可能有数百万个文件,我试图避免迭代。

最佳答案

恐怕这是不可能的,但这也不是一个好主意。这是一个坏主意,因为迭代的顺序是未指定的,并且您不能保证最后一个文件就是您想要的文件。这是不可能的,因为 std::filesystem::directory_iterator似乎在内部实现为单链表。

(via cppreference.com)The iteration order is unspecified, except that each directory entryis visited only once.


因此,通过访问最后一条路径,您将一无所获。你的用例是什么?肯定有一种不同的方式来完成你想要做的事情。

关于c++ - 从 std::filesystem::directory_iterator() 获取最后一个文件名而不迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65243583/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com