Move to Trash after completion of Folder Action

I have set up an Automator folder workflow attached to a folder on my desktop which adds the contents to a specific ‘group’, (folder) in my DevonThink Pro Office database which, when the action is run, does just that but leaves the (presumed) original in the folder on the desktop. This is fine but as I do not want to keep the items in the desktop folder, (as they are now in my database) I have to manually drag them to the Trash. Is there a way in which I can automate this ‘move to trash’?

I would attach a screenshot of my workflow but I don’t know how to!

Thanks for any help.

Hello.

You would end your Automator workflow with an applescript action which has the below inside, but with a correct path.

tell application "Finder"
	delete every item of folder "Hfs:Path:To:Your:Folder:With:Items:To:delete:inside of it:"
end tell

If you have trouble getting the hfspath, then mark the folder with the items in it, and run the script below, then it should be put onto the clipboard, from where you can easily paste it into the AppleScript action.

property l : {"Posix", "Hfs", "Url", "Rtf"}
property d : l's item 1 -- from Kai's dialog demo
global choice
tell application "Finder" to set sel to selection
if sel ≠ {} then
	tell application "System Events"
		tell (first application whose frontmost is true)
			activate
			set choice to (choose from list l default items d with prompt "Insert File identifier" OK button name {"Ok"})
			if choice is false then error number -128
		end tell
	end tell
else
	beep 2
	return
end if

set the clipboard to ("\"" & makeListOf(choice, sel) & "\"")


on makeListOf(theWay, aliasList)
	set tids to AppleScript's text item delimiters
	
	set produced to {}
	set interrim to {}
	if theWay is {"Posix"} then
		repeat with anElm in aliasList
			set interrim to interrim & POSIX path of (anElm as alias)
			
		end repeat
		set AppleScript's text item delimiters to return
		set produced to interrim as Unicode text
	else if theWay is {"Hfs"} then
		repeat with anElm in aliasList
			set interrim to interrim & (anElm as alias)
		end repeat
		set AppleScript's text item delimiters to return
		set produced to interrim as Unicode text
	else if theWay is {"Url"} then -- thanks Stefan!
		repeat with anElm in aliasList
			tell application "Finder" to set interrim to interrim & URL of (anElm as alias)
		end repeat
		set AppleScript's text item delimiters to return
		set produced to interrim as Unicode text
	else if theWay is {"Rtf"} then
		if (count of aliasList) > 1 then
			display alert "Only one at a time."
		end if
		set interrim to rtfLink((item 1 of aliasList) as alias)
		set produced to interrim
	end if
	set AppleScript's text item delimiters to tids
	return produced
end makeListOf

on rtfLink(anAlias)
	-- totally stolen from http://www.macosxhints.com/article.php?story=20091002090934432
	-- I have a shell file - rather compact, but I can't figure out where that leading zero comes from.
	-- I'll come back and revise this one as well.
	local _msglnk
	set _linkText to extract_shortname_from(extract_filename_from(anAlias as text)) as text
	tell application "Finder" to set _msglnk to URL of (anAlias as alias)
	set startEcho to "echo "
	set echoDelimiter to "'"
	
	set html_1 to "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
<meta http-equiv=\"Content-Style-Type\" content=\"text/css\">
<title>"
	set html_2 to "</title>
<meta name=\"Generator\" content=\"Cocoa HTML Writer\">
<meta name=\"CocoaVersion\" content=\"1038.11\">
<style type=\"text/css\">
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
</style>
</head>
<body>
<p class=\"p1\"><a href=\""
	set html_3 to "\">"
	set html_4 to "</a></p>
</body>
</html>"
	
	set echoCommand to startEcho & echoDelimiter & html_1 & _linkText & html_2 & _msglnk & html_3 & _linkText & html_4 & echoDelimiter
	set textutilCommand to " | textutil -convert rtf -inputencoding UTF-8 -format html -stdin -stdout"
	set pbcopyCommand to " | pbcopy -Prefer rtf"
	
	set entireCommand to echoCommand & textutilCommand & pbcopyCommand
	
	do shell script entireCommand
	copy (the clipboard) to theResult
	return theResult
end rtfLink

-- AS SDK *tinkered* and *cloned* 
on extract_shortname_from(the_filepath) -- clone of one from the SDK made by me.
	set the_filepath to the_filepath as text
	try
		set x to the offset of "." in (the reverse of every character of the_filepath) as string
	on error
		return the_filepath
	end try
	return ((characters 1 thru -(x + 1) of the_filepath) as text)
end extract_shortname_from

on extract_filename_from(the_filepath) -- slightly modified since HFS-name of rtfd document ends with ":"
	local x
	set the_filepath to the_filepath as text
	set x to the offset of ":" in (the reverse of every character of the_filepath) as string
	if x is 1 then
		set the_filepath to characters 1 thru -2 of the_filepath as text
		return extract_filename_from(the_filepath)
	end if
	return ((characters -(x - 1) thru -1 of the_filepath) as text)
end extract_filename_from

There should be a lot of scripts for taking a picture of the frontmost window, I thing command-shift-4 does it automatically, please look at a listing of keyboard shortcuts by google.

Or try the script I use below.

-- flat5 http://macscripter.net/viewtopic.php?id=38482
tell application "System Events" -- get frontmost process
	set frontmostProcess to first process where it is frontmost -- this will be the script process
	set visible of frontmostProcess to false -- hide the script process
	repeat while (frontmostProcess is frontmost) -- wait until the script is hided
		delay 0.2
	end repeat
	set secondFrontmost to name of first process where it is frontmost -- get name of frontmost process (ignoring the script process)
	set frontmost of frontmostProcess to true -- unhide the script process
end tell
tell application secondFrontmost to set winID to id of window 1 -- get WindowID of frontmost window of frontmost process
do shell script "screencapture -c -x -w "
--" & winID

-- -c is used to store it in the clipboard. -x is used to mute the sound. -l is used to refer to the prefered windowid.

The scripts are meant to be run from the Script menu, but I think they’ll work from Quicksilver as well, if they reisde in a folder scanned by Quicksilver.

thank you for your excellent help McUsrII, this does exactly what I want. Cheers.:slight_smile:

Hello.

I am glad I could help, you’d be amazed by what you can find if you started to search this fora, AppleScript and Mac Os X in particular, when it comes to AppleScript. :slight_smile: