如何在Perl中检测更改目录大小

前端之家收集整理的这篇文章主要介绍了如何在Perl中检测更改目录大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_0@
@H_404_0@
我试图找到一种监视Perl中的目录的方法,特别是目录的大小,并在检测到目录大小的变化时,执行特定的操作.
我遇到的问题是大文件需要大量的时间才能复制到这个目录中,即> 100MB.发生的事情(在 Windows中,而不是Unix)是系统为整个文件保留足够的磁盘空间,即使文件仍在进行复制.这会给我带来麻烦,因为我的脚本会尝试对尚未完成复制的文件执行操作.我可以通过’du’轻松检测Unix中的目录大小更改,但Windows中的’du’行为方式不同.

在Perl中是否有任何准确的方法来检测目录大小的变化?

编辑:有些要点澄清:
– 我的Perl脚本仅监视特定目录,并在检测到新文件或新目录时,对此新文件或目录执行操作.它没有复制任何文件;网络上的用户文件复制到我正在监控的目录中.
– 出现(复制,未移动)一个非常大的新文件或目录(> 100MB,但通常是几GB)时出现问题,我的程序在此复制完成之前触发
      – 在Unix中,我很容易’du’看到有问题的文件/目录的大小正在增加,并采取适当的措施
      – 在Windows中,大小是静态的,所以我无法检测到这种变化
– opendir / readdir / closedir是不可行的,因为出现的一些目录可能包含数千个文件,我想避免开销

理想情况下,我希望我的程序在更改时触发,但我不知道如何执行此操作.截至目前,它一直等到检测到变化.文件/目录大小的更改不在我的控制范围内.

解决方法

您似乎正在解决基础问题而不是解决它 – 您的程序在完成复制文件时未正确发送通知.为什么不这样做而不是使用特定于操作系统的机制来尝试间接确定操作何时完成?
@H_404_0@

猜你在找的Perl相关文章