Thanks for the script. I fixed a minor bug in it (the counter was
wrong), and enhanced it so that it would run over multiple folders.
Doing this method isn't much use if you don't do all the folders that
might have attachments at once.
I'll show the script a bit further down, but it still doesn't solve the
problem. I have about 150,000 messages in my database. Even running the
script overnight on a G5 isn't enough time. I guess we'll have to wait
for Powermail engineering to come up with a way that works.
Here's the script now
(*
This script goes through all the marked folders and changes the label on
the attachments.
Do this to find files in your Attachments folder that are not referenced
by any email messages.
Once this is complete, orphan files are the ones that are not set to the
label setting "2" (or
whatever you change it to).
This can take a while to run!
*)
on run
tell application "PowerMail"
set theContainers to current containers
repeat with acontainer in theContainers
set attachCount to 0
repeat with msg in every message in acontainer
set attachList to attachments of msg
set c to (count items of attachList)
if c > 0 then
set attachCount to attachCount + c
repeat with attachIdx from c to 1 by -1
set attachFile to file of (item
attachIdx of attachList)
if exists (file of (item
attachIdx of attachList)) then
tell application
"Finder"
--change "2" to
whatever setting you'd like for files that have
related messages
set label index
of attachFile to "2"
end tell
end if
end repeat -- attachment
end if
end repeat -- message
--Turn this statement on if you want to see what
happens in each container
if attachCount > 0 then display dialog (attachCount as
string) & "
files were marked: " & name of acontainer giving up after 10
end repeat -- container
display dialog "Done."
end tell
end run
:
>George Henne said:
>
>>>>How can I get rid of these zombie files?
>>>
>>>Move them to the trash & empty the trash.
>>>
>>
>>The problem is not being able to trash them. It's figuring out which of
>>the 6000 files in the Attachment folder are zombies.
>
>Search the amount of files you want to work on and use this script or
similar:
>
>***
>This script marks files that do have related found messages in PowerMail.
>Provided you have managed to find all messages, you can then order by
>label and trash unmarked files in the finder. Currently it doesn't
>warrant moved or deleted attachment files.
>
>tell application "PowerMail"
> set theMessages to current messages
> set attachCount to 0
> repeat with msg in theMessages
> set attachList to attachments of msg
> repeat with attachIdx from (count items of attachList) to 1 by
> -1
> set attachCount to attachCount + (count items of
> attachList)
> set attachFile to file of (item attachIdx of attachList)
> if exists (file of (item attachIdx of attachList)) then
> tell application "Finder"
> --change "2" to whatever setting you'd
> like for files that have
>related messages
> set label index of attachFile to "2"
> end tell
> end if
> end repeat
> end repeat
> display dialog (attachCount as string) & " files were marked."
>end tell
>
>***
>
>I choosed to not let the script move unmarked files to the trash, but
>prefer to do it by hand after sorting by label and selecting unmarked
>files. This could be added however.
>
>PM 5.2.1 | OS X 10.3.9 | Powerbook G4/400 | 768MB RAM | 30GB HD
>