http://qs1969.pair.com?node_id=279552


in reply to smart way of scanning hard drive for file & folder changes

Yes, many people. But most uses are seen for individual files or directories, not complete drives.
So the work-around would be to simple add a notification for every subdir on your drive.
Secondly, even on windows atime can be turned of ("a folder's last accessed property"), so you can't rely on that.

T I M T O W T D I

Replies are listed 'Best First'.
Re: Re: smart way of scanning hard drive for file & folder changes
by Foggy Bottoms (Monk) on Jul 31, 2003 at 15:25 UTC
    Yes I did notice that you could turn the atime off so it's reliable.
    Luckily enough I managed to get my hands on the long lost Win32::AdvNotify package which you can find at http://idnopheq.perlmonk.org/perl/packages.

    I then wrote up a little script (see below) that tells you when a change occurs, what type of change it is and what file/folder was affected - it's simply grand !!!
    Thanks for your input and here's my code :
    NB: you need Win32::API and Data::Dumper as well as the Win32::AdvNotify packages.
    use strict; use Data::Dumper; use Win32::AdvNotify qw (Yes No All); my $obj = new Win32::AdvNotify() or die ("Can't create AdvNotify object"); (my $thread=$obj->StartThread(Directory=>"d:\\brossad",Filter=>All, WatchSubtree=>Yes)) or die ("Can't start thread."); $thread->EnableWatch() || die "Problem starting EnableWatch()\n"; while (!$obj->Wait(200)) # time in milliseconds { print ".";#wait and see } my @data; my $ret = $obj->Read(\@data); print Dumper(@data); # very important line - don't forget it $thread->Terminate(); $obj->Free;