通过时间戳高效地选择一系列数码照片

通过时间戳高效地选择一系列数码照片

我正在从慢的暴露数码相机的网络共享DCF 文件系统。我不需要所有的图像,只需要特定时间间隔内的图像。

调用stat每个文件来获取其时间戳需要太长时间,因此我尝试提高效率。

DCF 文件系统将每 1,000 张照片拆分到一个单独的目录中。一个想法是按文件名编号对给定目录中的文件进行排序,例如,,,,DSC00590.JPG然后检查第一个和最后一个文件的时间戳DSC00591.JPGDSC00592.JPG看看整个目录是否超出了我的间隔。

但是,如果删除了一张照片,随后又拍摄了一张新照片,而新照片的编号与删除的照片相同,则此方法可能会失败。这将打破时间戳和文件名均单调递增的假设。

所以问题是:假设文件编号单调增加是否安全?我可以使用其他技巧来根据时间戳有效地对照片进行子集化吗?

答案1

DCF 规范建议分配比给定目录中的最大数字大 1 的数字。但是,这不是必需的。

此外,它建议在删除目录之前警告用户,因为这可能会造成不连续性。

未指定的是,如果您有两个目录(例如100101),并且100已满,并且您删除了中的最后一张照片100,然后拍摄一张新照片,它会去哪里?

因此,不同相机的行为可能有所不同,因此不是可以安全地假设编号是单调递增的。我最好测试一下这个特定的系统来确定它的行为,但对于任意的 DCF 文件系统,都不能假设这种行为。

我没有找到比stat所有文件更好的方法。

相关内容