使用Win32 :: ChangeNotify并等待操作完成

时间:2014-01-31 09:43:43

标签: windows perl

情况: 我正在观看Win32 :: ChangeNotify的文件夹(这里不关心跨平台)。 该文件夹与本地网络共享。 将从另一台计算机在此文件夹中创建一个文件。这个过程需要一些时间。

问题: 在文件仍在写入时触发了更改内容的事件。我怎么能等待写操作完成?

我的代码看起来像这样:

my $notify = Win32::ChangeNotify->new($watched_folder, 0, "LAST_WRITE");
if ($notify->wait(5000) == 1) {
    # 1 = The object is signalled
}

1 个答案:

答案 0 :(得分:2)

您可能希望执行类似存储的操作并检查事件之间的文件大小,或者在检测到新文件后触发其他观察程序执行此操作。在文件大小未更改的已接受时间段之后,您可以合理地期望打开该文件。

我之前使用过INotify采用了这种方法。