我正在从公开数码相机DCF 文件系统的慢速网络共享中复制一些图像。我不想要所有图像,只想要那些落在特定时间间隔内的图像。
调用stat
每个文件以获取其时间戳需要很长时间,所以我试图提高效率。
DCF 文件系统将每 1,000 张照片拆分到一个单独的目录中。一个想法是按文件名编号对给定目录中的文件进行排序,例如 , DSC00590.JPG
, DSC00591.JPG
,DSC00592.JPG
然后检查第一个和最后一个文件的时间戳以查看整个目录是否超出我的时间间隔。
但是,如果照片被删除,并且随后拍摄新照片,如果新照片获得已删除照片的编号,这可能会失败。这将打破时间戳和文件名都是单调递增的假设。
所以问题是:假设单调递增的文件编号是否安全?我可以使用其他一些技巧来根据时间戳有效地对照片进行子集化吗?
DCF 规范建议分配比给定目录中的最大数量大一号的数字。但是,这不是必需的。
此外,它建议在删除目录之前警告用户,因为它可能会造成不连续性。
未指定的是,如果您有两个目录(例如,
100
和101
),并且100
已满,并且您删除了 中的最后一张照片100
,然后再拍摄一张新照片,它会去哪里?因此,行为可能因相机而异,因此编号单调递增并不是一个安全的假设。充其量我应该测试这个特定的系统以确定它的行为,但不能假设任意 DCF 文件系统的行为。
我没有找到比
stat
所有文件更好的方法。