MACSCRPT Archives

October 2006

MACSCRPT@LISTSERV.DARTMOUTH.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Mark Lively <[log in to unmask]>
Reply To:
Macintosh Scripting Systems <[log in to unmask]>
Date:
Tue, 24 Oct 2006 16:18:45 -0400
Content-Type:
text/plain
Parts/Attachments:
text/plain (90 lines)
On Oct 24, 2006, at 3:42 PM, John A.M. Darnell wrote:

> It works great.  The files, whose type and creator fields are blank
> because they were transferred via UNIX server from a Windows box to  
> a Mac
> box are able to function as expected after I run this little task.
>
> If, however, I convert it to this:
>
> on open (FolderSpec)
>         set FileList to files in FolderSpec
>         repeat with x in FileList
>                 tell application "Finder"
>                         set creator type of x to "CARO"
>                         set file type of x to "PDF "
>                 end tell
>
>         end repeat
> end open
>
>  and then drop a folder full of files on it, nothing happens.  If I
> inspect FolderSpec, it is the path to the folder dropped on the  
> icon.  If
> I query the size of the list before I attempt processing, I get 0.   
> If I
> get rid of the "set FileList to files..." line, I get all sorts of  
> errors
> when I attempt setting creator or file type.
>
> What's so radically different about these two approaches?  One  
> would think
> that they should operate pretty much the same.
>
Its what you start with.

The open gives you an alias list.  You appear to come in with a  
finder folder.

This is a tweaked version of yours

on open (FolderSpec)
	if (count FolderSpec) = 1 then set FolderSpec to item1 of FolderSpec  
--get the first item may want to add rules to handle getting more  
than one item
	tell application "Finder" --moved up since AppleScript doesn't  
understand folders
		set FileList to files in folder FolderSpec
		repeat with x in FileList
			set creator type of x to "CARO"
			set file type of x to "PDF "
			
		end repeat
	end tell
end open

open ({choose folder}) --useful for testing or double clicking

-----


my version with recursion, but still no flair


on RecursiveChangeRoutine(FolderSpec)
	repeat with x in FolderSpec
		log x
		tell application "Finder"
			set x to item x
			if class of x = folder then
				my RecursiveChangeRoutine(every item of x as alias list)
			else -- may want to put in an else if to handle things which  
aren't files or folders....
				set creator type of x to "CARO"
				set file type of x to "PDF "
			end if
		end tell
	end repeat
end RecursiveChangeRoutine

on open FolderSpec
		RecursiveChangeRoutine(FolderSpec)
end open

open (choose folder)

-Mark
Bring me my velcro gloves, I'm in the mood for love!
Captain Pike
Tiberius

ATOM RSS1 RSS2