Nov 24, '03 10:31:00AM • Contributed by: Anonymous
[robg adds: Read the rest of the hint for the script ... and I think "Sal from Cupertino" is probably Sal Soghoian, the AppleScript Product Manager at Apple (at least, that's what he was a few years back).]
on adding folder items to this_folder after receiving these_items
tell application "Finder"
if not (exists folder "Done" of this_folder) then
make new folder at this_folder with properties ¬
{name:"Done"}
end if
set the destination_folder to folder "Done" of ¬
this_folder as alias
set the destination_directory to POSIX path of ¬
the destination_folder
end tell
repeat with i from 1 to number of items in these_items
set this_item to item i of these_items
set the item_info to info for this_item
if this_item is not the destination_folder and the ¬
name extension of the item_info is not in ¬
{"zip", "sit"} then
set the item_path to the quoted form of the ¬
POSIX path of this_item
set the destination_path to the quoted form of ¬
(destination_directory & (name of the ¬
item_info) & ".zip")
do shell script ¬
("/usr/bin/ditto -c -k -rsrc --keepParent " & ¬
item_path & " " & destination_path)
end if
end repeat
end adding folder items to
NOTES:- Create a "Done" folder in the attached folder and either move the file to process there or have the shell compress to that location. This will prevent the Folder Action from triggering again when the archive is created.
- The "info for" command returns a record of an item's property. One of those properties is its "name extension". Use this property instead of checking the name to determine if a name extension exists or is the correct type.
Thanks Sal and Applescript!
