2016-02-13 85 views
1

您好,我想製作一個小紅寶石腳本,以在圖像打開時提醒我。如何知道圖像文件是否打開

我試着用:

filename = "photo.jpg" 

loop do 
    sleep(1) 
    if system %Q[lsof #{filename}] 
     puts "File open" 
    end 
end 

但它不工作..任何想法?

+0

雖然它很脆弱,但它對我很有用。 – hek2mgl

回答

2

試試這個例子:

  1. 創建一個文件touch hello_world.log
  2. 尾巴-f文件(可以讓你實時跟蹤文件,因爲它生長)tail -f hello_world.log
  3. 打開一個單獨的終端和打開IRB

輸入以下代碼:

filename = "hello_world.log" 

loop do 
    sleep(1) 
    if system %Q[lsof #{filename}] 
     puts "File open" 
    end 
end 

您可能需要查看inotify(Ruby gem rb-inotify),因爲這可能是您想要的。假設某人用文本編輯器打開一個文件然後保存它,那麼保存事件可能不會在lsof下顯示,因爲它每秒鐘都在輪詢(並且隨後將僅顯示出現在該點的信息,所以您可能永遠不會抓住它)。

相關問題