42piratas
42piratas

Reputation: 595

Automatically move files of a certain type from folder A to B whenever they are added to folder A on macOS

Using Automator, I created a "Folder Action" to move files of certain types (i.e. "Kind IS Movie") from folder "FolderA" to folder "FolderB" as soon as they are added to folder "FolderA". It works fine except that it doesn't move files from subfolders (e.g. doesn't work if the movie files are added to "FolderA/SubA/"), and apparently there's no option on Automator to make it work on the subfolders.

Does anyone have any idea about how to either change that on Automator or how could I create a script for that? Thanks!

Upvotes: 0

Views: 1744

Answers (1)

wch1zpink
wch1zpink

Reputation: 3142

This following AppleScript folder action code should give you a general idea of how to accomplish what you are looking for. When a file or folder is added to a folder that this folder action is attached to, it will search all folders and sub folders for files (I used QuickTime movie as the kind of file... But you can change that to whatever you want) then those files will be moved to the folder that you will define in property moveToFolder

You can save this following code in Script Editor.app directly into your /Users/Your_User_Name/Library/Workflows/Applications/Folder Actions folder, as a .scpt file. Once the script is saved into that folder, it will be available to attach to any folder as a folder action using the Folder Actions Setup.

-- Set This To The Folder You Want Your Videos Moved To
property moveToFolder : (path to desktop as text) & "moved_videos"
-- Set This To The Kind Of File To Act Upon
property fileKind : "QuickTime movie"

on adding folder items to theFolder after receiving theNewItems
    tell application "Finder"
        set movieFilesRef to a reference to (files of entire contents of folder theFolder ¬
            whose kind is fileKind)
        move movieFilesRef to alias moveToFolder
    end tell
end adding folder items to

OR Here Is A Version Which Defines The Name Extensions Of The Files To Act Upon

-- Set This To The Folder You Want Your Videos Moved To
property moveToFolder : (path to desktop as text) & "moved_videos"
-- Set This To The Name Extensions Of Files To Act Upon
property videoFileExtensions : {"m4v", "mkv", "avi", "mp4", "mov", "wmv", "mpg"}

on adding folder items to theFolder after receiving theNewItems
    tell application "Finder"
        set movieFilesRef to a reference to (files of entire contents of folder theFolder ¬
            whose name extension is in videoFileExtensions)
        move movieFilesRef to alias moveToFolder
    end tell
end adding folder items to

Upvotes: 2

Related Questions