Determine si un archivo está en uso en Perl en Windows
Estoy escribiendo algo de Perl que toma programas de TV grabados en Windows Media Center y los mueve / renombra / elimina según ciertos criterios.
Dado que Perl se ejecuta con bastante frecuencia, me gustaría determinar de manera clara si el archivo está en uso o no (en otras palabras, el programa está en proceso de grabación) para que pueda evitar hacer algo con él.
Mi método actual analiza el estado de un archivo (usando "stat") y lo compara nuevamente después de 5 segundos, de esta manera:
sub file_in_use
{
my $file = shift;
my @before = stat($file);
sleep 5;
my @after = stat($file);
return 0 if ($before ~~ $after);
return 1;
}
Parece funcionar, pero soy consciente de que probablemente haya una forma mejor y más limpia de hacerlo.
¿Puede aconsejarme?