Jai*_*Jai 6 c++ c++17 std-filesystem
我正在尝试获取最后一个文件名。下面的代码非常优雅。但它正在遍历目录中的所有文件。 是否可以在不迭代的情况下获取最后一个文件?
#include <filesystem>
std::string latestFileName;
for (const auto &entry : fs::directory_iterator("/media/jai/Entertainment"))
latestFileName = entry.path();
std::cout << latestFileName << std::endl;
Run Code Online (Sandbox Code Playgroud)
已编辑:目录中的文件已按字母顺序递增。我想选择最新的文件,它已经确定是按字母顺序排列的最后一个文件。由于可能有数百万个文件,我试图避免迭代。
小智 3
恐怕这是不可能的,但这也不是一个好主意。这是一个坏主意,因为迭代的顺序未指定,并且您无法保证最后一个文件是您想要的文件。这是不可能的,因为std::filesystem::directory_iterator似乎在内部作为单链表实现。
(来自 cppreference.com)迭代顺序未指定,但每个目录条目仅被访问一次。
因此,访问最后一条路径不会获得任何价值。您的用例是什么?肯定有一种不同的方法来完成您想要做的事情。
| 归档时间: |
|
| 查看次数: |
201 次 |
| 最近记录: |