フォルダにファイルが追加されたら通知するAppleScript


フォルダアクション

macOSにはフォルダアクションという機能があり、設定したフォルダに対しなんらかのアクションがあった際にスクリプトが発火します。今回はその中でファイルやフォルダが追加されたときに動作するadding folder itemsを利用したいと思います。(notificationがFAXになっているのはTwitterのTLで見かけたから……)

設定

/Library/Scripts/Folder Action Scripts/に下記スクリプトを任意の名前で保存します。

アクションを設定したいフォルダを選択し、コンテキストメニューからフォルダアクション設定...をクリック。(スクリーンショットではinフォルダに設定)

先ほど保存したスクリプトを選択し関連付けすれば設定終了です。
とっても楽チンにフォルダ監視ができました。

他にも、フォルダ内のファイル等が削除されたとき、フォルダを開いたとき・閉じたときに動作するのもありますので公式サイトをご参照してください。

サンプルコード

on adding folder items to theFolder after receiving theList

    set timestamp to my getTimestamp()
    set moveFolder to POSIX path of (path to desktop) & "out/" & timestamp
    my makeFolder(moveFolder)

    my moveFiles(POSIX path of theFolder, moveFolder)

    display notification "FAXが届きました" with title "FAX受信" subtitle "" sound name "Ping"

end adding folder items to

on moveFiles(addFolder, moveFolder)
    do shell script "mv " & quoted form of addFolder & "*" & space & quoted form of moveFolder
end moveFiles


on getTimestamp()
    do shell script "date +%Y%m%d_%H%M%S"
end getTimestamp

on makeFolder(moveFolder)
    do shell script "mkdir -p " & quoted form of moveFolder
end makeFolder