2011-06-25 78 views
2

文件夾項目更改時的文件夾操作是否不存在?我希望我的腳本在我更新文件時運行。我在documentation中沒有看到任何提及。是否有某種我失蹤的選擇,因爲這接縫非常瘋狂,沒有。Applescript文件夾操作支持更改/更改/更新的文件?

on adding folder items to this_folder after receiving added_files 
    do shell script "anything" 
end adding folder items to 

on removing folder items from this_folder after losing removed_files 
    do shell script "anything" 
end removing folder items from 

-- does not exits?!? 
on changing folder items in this_folder after updating changed_files 
    do shell script "anything" 
end changing folder items in 

回答

1

不,不直接存在。然而,類似的事情可以通過一個閒置的處理程序來完成,該處理程序監視文件夾中的文件以查看它們的修改日期是否已更改,並在文件中執行某個操作。

2

還有一種文件夾操作的替代方法。您使用launchd並設置觀看路徑。使用手錶路徑,只要您正在觀看的文件夾發生變化,代碼就會運行。文件夾操作和啓動操作之間最大的區別在於,通過啓動操作,您不知道哪些文件已更改。你只知道改變了一些東西。所以你的代碼必須弄清楚實際的變化是什麼,但是這對你來說不應該太難,因爲如果你正在尋找一個更新的文件,你只需檢查文件的修改日期。

如果你想嘗試它,你可以谷歌launchd和觀看路徑。

+0

我已經探索了launchd的所有選項,以供將來參考,以及其他人試圖做我想做的事情。 Launchd缺乏支持,並遇到與文件夾操作相同的問題。 – ThomasReggi

+0

我不確定你的意思是ThomasReggi。您需要一種方法來在觀察文件夾中更改/更新文件時運行腳本。 Launchd這樣做。那麼你究竟是什麼意思「推出缺乏支持」? – regulus6633

1

怎麼樣rsync -va '/source/path/' '/destination/path/',使用Lingon,有這個簡單的命令設置爲用戶守護進程運行,比如說,每10秒?

1

我發現了一個棘手的方法來輕鬆地使用Automator來做到這一點,並只在某些情況下工作,所以試試看,看看它是否有幫助。當您在OSX中創建/修改文件夾內容時,會將名爲.DS_Store的隱藏操作系統文件寫入文件夾,該文件對用戶來說是無用的文件,但可以觸發文件夾操作。據說,我在我的文件夾操作中的運行Shell腳本操作中使用rsync。一旦行動完成同步我然後刪除.DS_Store文件。

這是我的例子:

rsync -r /Users/path/to/source/* /Users/path/to/destination 
rm -f /Users/path/to/source/.DS_Store 

那麼下一次你修改文件/文件夾在該目錄中,文件夾操作踢和過程將重複。

我希望這可以幫助...