NAME
Win32::ChangeNotify - Monitor events related to files and directories
SYNOPSIS
require Win32::ChangeNotify;
$notify = Win32::ChangeNotify->new($Path,$WatchSubTree,$Events);
$notify->wait or warn "Something failed: $!\n";
# There has been a change.
DESCRIPTION
This module allows the user to use a Win32 change notification event object from Perl. This allows the Perl program to monitor events relating to files and directory trees.
The wait
method and wait_all
& wait_any
functions are inherited from the "Win32::IPC" module.
Methods
- $notify = Win32::ChangeNotify->new($path, $subtree, $filter)
-
Constructor for a new ChangeNotification object.
$path
is the directory to monitor. If$subtree
is true, then all directories under$path
will be monitored.$filter
indicates what events should trigger a notification. It should be a string containing any of the following flags (separated by whitespace and/or|
).ATTRIBUTES Any attribute change DIR_NAME Any directory name change FILE_NAME Any file name change (creating/deleting/renaming) LAST_WRITE Any change to a file's last write time SECURITY Any security descriptor change SIZE Any change in a file's size
(
$filter
can also be an integer composed from theFILE_NOTIFY_CHANGE_*
constants.) - $notify->close
-
Shut down monitoring. You could just
undef $notify
instead (butclose
works even if there are other copies of the object). This happens automatically when your program exits. - $notify->reset
-
Resets the ChangeNotification object after a change has been detected. The object will become signalled again after the next change. (It is OK to call this immediately after
new
, but it is not required.) - $notify->wait
-
See "Win32::IPC". Remember to call
reset
afterwards if you want to continue monitoring.
Deprecated Functions and Methods
Win32::ChangeNotify still supports the ActiveWare syntax, but its use is deprecated.
- FindFirst($Obj,$PathName,$WatchSubTree,$Filter)
-
Use
$Obj = Win32::ChangeNotify->new($PathName,$WatchSubTree,$Filter)
instead.
- $obj->FindNext()
-
Use
$obj->reset
instead. - $obj->Close()
-
Use
$obj->close
instead.
AUTHOR
Christopher J. Madsen <ac608@yfn.ysu.edu>
Loosely based on the original module by ActiveWare Internet Corp., http://www.ActiveWare.com