gpt4 book ai didi

c++ - 从 C++ 中的给定文件点读取目录

转载 作者:太空狗 更新时间:2023-10-29 23:06:34 24 4
gpt4 key购买 nike

我有两个程序将同时读取/写入文件到同一目录(但不会同时读取到完全相同的文件)。我已经完成了写作部分,但我正在努力获得阅读目录部分的半途而废的工作实现。

目录中的文件遵循以下命名方案:图像-[INDEX]-[KEY/DEL]--[TIMESTAMP]

[INDEX]000000 递增,[KEY/DEL] 根据图像是关键帧还是增量帧交替[TIMESTAMP] 是文件创建时的 Unix/Linux 纪元时间。

现在,读取程序每次需要在目录中查找图像时,一次读取一个文件(使用 dirent.h 库)。当目录变得非常大时,我想这个操作/方法将很快变得非常耗费资源,并最终失败。因此,我正在尝试寻找替代方法。我想在初始化时读取整个目录,并将文件信息保存在一个数组中,以便稍后在程序中访问/使用。然后,当请求一个不在数组中的文件时,程序将通过读取目录来更新文件数组,但这次是从初始化结束时中断的位置开始。

这可能吗?要在目录中的已知点(最后一个文件“读入”)开始读取目录中的文件名?还是我每次都必须从头开始?

或者有更好的方法吗?

谢谢。

最佳答案

正如安德鲁所说,在尝试解决之前,我会确认这确实是一个问题。

如果可以打折创建文件的可能性是乱序的,也就是没有文件 您希望在该文件之后创建另一个文件之前进行处理,那么您可以使用此方法。

首先,将整个目录列表读入数组或 vector 。然后,在迭代文件时,只需迭代 vector 即可。最后,如果您发现文件未找到或到达 vector 末尾,请刷新它以防万一已创建更多文件。

毫无疑问,您会想将此逻辑封装到某种上下文对象中,它会记住上次读取的文件。您还可以通过对 vector 进行排序来进行优化。

关于c++ - 从 C++ 中的给定文件点读取目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15348532/

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