From: Tim Pease Date: 2008-09-24T00:53:20+09:00 Subject: Re: ruby gem to watch file On Sep 22, 2008, at 4:36 PM, Siep Korteling wrote: > Junkone wrote: >> On Sep 20, 11:15�pm, Tim Pease wrote: >>> >>> Blessings, >>> TwP >> >> i tried as you suggested and have a few q. >> i am trying to run a ruby prog to execute if there is any new file in >> a directory. i started out with the examples but am a little confused >> on how to useit. >> this prog seems to be looking at the current directory where it is >> running and not where i had specificed it to watch with dw.glob. >> >> appreciate any help. >> >> seede >> > (...) > Hm, I can't get it to work either (on WinXP). > > require 'directory_watcher' > dw = DirectoryWatcher.new 'D:/temp/' > dw.interval=5 > dw.add_observer {|*args| args.each {|event| puts event}} > dw.start > gets > dw.stop > > It does display the files ("added 'D:/temp/Pink_Pajamas.amv'" etc), > but > after that you can delete, add and edit files without > directory_watcher > noticing anything. Is it broken on windows or am I doing something > wrong? The whole program is blocking on the "gets". On the windows platform, all threads block when reading from standard input. So the "gets" is causing all threads to wait including the directory watcher thread. Try replacing the "gets" with a "sleep 30" or some other time interval. Blessings, TwP