2010年6月13日

同步資料夾語法

同步概念


利用資料夾的Folder Action Setup功能搭配AppleScript語法,每當資料夾A新增檔案的同時就會觸發動作,將新增的檔案複製到資料夾B當中。

on adding folder items to this_folder after receiving added_items

try

tell application "Finder"

duplicate added_items to "OSX:Users:Guest:Documents"

end tell

end try

end adding folder items to



  1. 當本資料夾接收到新增檔案時
  2. 執行「try」動作
  3. 告訴Finder以下的命令
  4. 替新增檔案製作「副本」到「OSX:Users:Guest:Documents」路徑
  5. 結束步驟3的「tell」
  6. 結束步驟2的「try」
  7. 結束本計劃
    注意路徑位置並非平常使用的反斜線「/」,而是半形冒號「:」。


    on adding folder items to this_folder after receiving added_items

    try

    tell application "Finder"

    duplicate folder "A資料夾路徑" to "B資料夾路徑" with replacing

    end tell

    end try

    end adding folder items to


    這邊可以看到觸發動作的事件依然是有新增檔案時,只是我要求它將A資料夾完整複製到B資料夾中。這個方式目的在子資料夾事件觸動時,能夠將母資料夾進行整體複製,算是小題大作卻比較保險的方式。

    最後試想看看,當你把目的端設為Dropbox的資料夾時,你就能讓Dropbox同步多個資料夾而非預設的單一資料夾。


    Ref.
    1. Cory Bohon, “AppleScript: Exploring the power of Folder Actions, part I,” TUAW, 無日期, http://www.tuaw.com/2009/02/16/applescript-exploring-the-power-of-folder-actions-part-i/.
    2. “AppleScript 2.1 Help: Duplicate,” Apple, 無日期, http://docs.info.apple.com/article.html?path=AppleScript/2.1/en/as167.html.

    2 則留言:

    appleseed 提到...

    這方法很讚!!

    而且你說明Script的方式太酷了
    不了解程式的語法的人一看也會懂才對^^

    Li-Fong Chen 提到...

    謝謝您,因為剛開始學習語法,將目前的半成品跟實驗的目的寫下來比較能幫助記憶。