user1231499
user1231499

Reputation: 41

Applescript: Make new folder structure in multiple folders

This code for an applet creates a specific folder structure inside of either a single selected folder or whatever the open folder is in Finder when the applet is clicked. It breaks down if multiple folders are selected. Is there a way to get this script to work when multiple folders are selected?

property archivesFolder : "Archives"

property imagesFolder : "Images"

property proofreadFolder : "Proofreading"

property proofFolder : "Proofs"

property sourceFolder : "Source"

try
    tell application "Finder" to set theLocation to the selection as alias
on error
    tell application "Finder" to set theLocation to (folder of the front window as alias)
end try

tell application "Finder"

    if not (exists folder archivesFolder of theLocation) then
        make new folder at theLocation with properties {name:archivesFolder}
    end if

    if not (exists folder imagesFolder of theLocation) then
        make new folder at theLocation with properties {name:imagesFolder}
    end if

    if not (exists folder proofreadFolder of theLocation) then
        make new folder at theLocation with properties {name:proofreadFolder}
    end if

    if not (exists folder proofFolder of theLocation) then
        make new folder at theLocation with properties {name:proofFolder}
    end if

    if not (exists folder sourceFolder of theLocation) then
        make new folder at theLocation with properties {name:sourceFolder}
    end if

end tell

Upvotes: 0

Views: 1324

Answers (1)

adayzdone
adayzdone

Reputation: 11238

Try this:

property folderNames : {"Archives", "Images", "Proofreading", "Proofs", "Source"}

tell application "Finder"
set selectedFolders to selection
if (count of selectedFolders) > 0 then
    repeat with aFolder in selectedFolders
        set theLocation to aFolder as string
        repeat with newFolder in folderNames
            try
                make new folder at theLocation with properties {name:"" & newFolder & ""}
            end try
        end repeat
    end repeat
else
    set theLocation to (target of front window) as string
    repeat with newFolder in folderNames
        try
            make new folder at theLocation with properties {name:"" & newFolder & ""}
        end try
    end repeat
end if
end tell

Upvotes: 2

Related Questions