Comment detail

ファイル更新の監視 (Nested Flatten)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
require 'event' # http://yagi.xrea.jp/2006/08/event.rb

filename = File.expand_path("touched.txt")

last_mtime = File.stat(filename).mtime
loop {
  Win32::Event::FindChangeNotification(File.dirname(filename))
  file_mtime = File.stat(filename).mtime
  if last_mtime != file_mtime
    puts "modified!"
    last_mtime = file_mtime
  else
    sleep 0.1
  end
}
mtime を見ないで済むよう書き換えました。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
require 'rubygems'
require 'win32/ipc' # http://rubyforge.org/projects/win32utils
require 'win32/changenotify' # http://rubyforge.org/projects/win32utils
include Win32

exit if ARGV == []
filename = File.expand_path(ARGV[0])

flags = ChangeNotify::FILE_NAME | ChangeNotify::LAST_WRITE | ChangeNotify::SIZE
cn = ChangeNotify.new(File.dirname(filename), false, flags)

loop {
  cn.wait(){|sa|
    sa.each {|st|
      puts "modified!" if st.file_name == File.basename(filename)
    }
  }
}

Index

Feed

Other

Link

Pathtraq

loading...