我正在编写一些Perl,它可以在Windows Media Center上录制电视节目,并根据特定条件移动/重命名/删除它们.
由于Perl运行相当频繁,我想清楚地确定文件是否正在使用(换句话说,节目正在被录制过程中),所以我可以避免对它做任何事情.
我当前的方法查看文件的状态(使用"stat")并在5秒后再次比较它,如下所示:
sub file_in_use
{
my $file = shift;
my @before = stat($file);
sleep 5;
my @after = stat($file);
return 0 if ($before ~~ $after);
return 1;
}
Run Code Online (Sandbox Code Playgroud)
它似乎有效,但我很有意思,可能有更好,更清洁的方法来做到这一点.
你能给些建议么?