Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re^3: File::Monitor problem with batch files

by tokpela (Chaplain)
on Nov 18, 2010 at 02:58 UTC ( #872118=note: print w/ replies, xml ) Need Help??


in reply to Re^2: File::Monitor problem with batch files
in thread File::Monitor problem with batch files

Actually, I looked at the module and the package name is

package Win32::ReadDirectoryChanges;

The bareword errors were probably because of the incorrect package name. Change the name of the module you copied and pasted to Win32::ReadDirectoryChanges (without the W).

Try to change the code to:

use strict; use warnings; use File::Copy::Recursive qw(fcopy rcopy dircopy fmove rmove dirmove); use Win32::ReadDirectoryChanges; my $path = 'c:\\PAPER'; my $subtree = 1; my $filter = FILE_ACTION_ADDED | FILE_ACTION_MODIFIED; my $rdc = Win32::ReadDirectoryChanges->new(path => $path, subtree => 1, filter => $filter); my @results = $rdc->read_changes; while (scalar @results) { my ($action, $filename) = splice(@results, 0, 2); if ($action == FILE_ACTION_ADDED || $action == FILE_ACTION_MODIFIED +) { # perform your backup here fcopy ("$filename","p:\\phdpaper"); } }


Comment on Re^3: File::Monitor problem with batch files
Select or Download Code
Re^4: File::Monitor problem with batch files
by xbmy (Friar) on Nov 18, 2010 at 15:53 UTC

    Thanks! But it just work on the tmp file, which was automatically added after i saved a .doc file by microsoft word, but there was no copying action for the original .doc file after i modified it and saved.

    Whats wrong? Pleas hint.

Re^4: File::Monitor problem with batch files
by xbmy (Friar) on Nov 18, 2010 at 17:08 UTC

    I have tried other filters like:

    FILE_NOTIFY_CHANGE_ATTRIBUTES | FILE_ACTION_MODIFIED

    But they all work not well, I m trying the other filters.

    I also got a wrong message when I ran the code you post to me:

    Character in 'C' format wrapped in pack at c:/Perl/site/lib/Win32/ReadDirectoryChanges.pm line 214.

    I don't know how to treat it. I really want the code to work, it will be a great help to my paper composition.

    Thanks!

Re^4: File::Monitor problem with batch files
by xbmy (Friar) on Nov 18, 2010 at 19:36 UTC

    How do you think the problem i asked for you? Actually, i tried the following codes using the file::monitor::delta package, finally, it worked very well!

    use File::Monitor; use File::Copy::Recursive qw(fcopy rcopy dircopy fmove rmove dirmove); my $monitor = File::Monitor->new(); # Watch some files for my $file (qw( 1.doc 2.xls)) { $monitor->watch( $file ); } # First scan just finds out about the monitored files. No changes # will be reported. #$object->scan; while (1) { $monitor->scan; sleep 10; # After the first scan we get a list of File::Monitor::Delta objec +ts # that describe any changes my @changes = $monitor->scan; for my $change (@changes) { # Call methods on File::Monitor::Delta to discover what change +d if ($change->is_mtime) { my $name = $change->name; my $old_mtime = $change->old_mtime; my $new_mtime = $change->new_mtime; print "$name changed at $new_mtime\n"; fcopy ("$name","p:\\phdpaper"); #backup automatically for +the file which just has been modified } } }

    Thank you for your help!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://872118]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (16)
As of 2014-07-24 16:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (162 votes), past polls