Estou copiando várias imagens de um compartilhamento de rede lento que expõe o sistema de arquivos DCF de uma câmera digital . Não quero todas as imagens, apenas aquelas que estão dentro de um intervalo de tempo específico.
Chamar stat
cada arquivo para obter seu carimbo de data/hora leva muito tempo, então estou tentando ser mais eficiente sobre isso.
O sistema de arquivos DCF divide cada 1.000 fotos em um diretório separado. Uma ideia é classificar os arquivos em um determinado diretório pelo número do nome do arquivo, por exemplo, DSC00590.JPG
, DSC00591.JPG
, DSC00592.JPG
e, em seguida, verificar os carimbos de data e hora do primeiro e do último arquivo para ver se todo o diretório está fora do meu intervalo ou não.
No entanto, isso pode falhar se uma foto for excluída e uma nova foto for tirada posteriormente, caso a nova foto receba o número da excluída. Isso quebraria a suposição de que os carimbos de data/hora e os nomes de arquivo estão aumentando monotonicamente.
Portanto, a questão é: é seguro assumir uma numeração de arquivo monotonicamente crescente? Existe algum outro truque que eu poderia usar para subconfigurar as fotos com eficiência de acordo com o carimbo de data/hora?
A especificação DCF recomenda atribuir o número um maior que o número máximo em um determinado diretório. No entanto, não é necessário.
Além disso, recomenda avisar o usuário antes de deletar um diretório, pois pode criar uma descontinuidade.
O que não foi especificado é que, se você tiver dois diretórios (digamos,
100
e101
) e100
estiver cheio, e excluir a última foto em100
, e depois tirar uma nova foto, para onde ela vai?Assim, o comportamento pode diferir de câmera para câmera e, portanto, não é uma suposição segura de que a numeração é monotonicamente crescente. Na melhor das hipóteses, devo testar esse sistema específico para determinar seu comportamento, mas o comportamento não pode ser assumido para sistemas de arquivos DCF arbitrários.
Não encontrei uma maneira melhor do que
stat
todos os arquivos.