Re: Choose folder dialog and then process contents?
Re: Choose folder dialog and then process contents?
- Subject: Re: Choose folder dialog and then process contents?
- From: Gnarlodious <email@hidden>
- Date: Wed, 06 Oct 2004 14:32:36 -0600
Title: Re: Choose folder dialog and then process contents?
The basic idea goes like this:
tell application "Finder" to set theseItems to every file of folder (choose folder with prompt "Pick the folder containing the files to process:")
repeat with FileSpec from 1 to count items in theseItems
if name of item FileSpec of theseItems ends with ".txt" then
display dialog (item FileSpec of theseItems as text)
end if
end repeat
You will need to make a handler to delve into folders but that should get you going.
-- Gnarlie
Entity Aaron Rosenblum spoke thus:
> Hi,
>
> It seems when pasting from script editor to Mail.app, it created a lot
> of spacer gif attachments that got included with my last message.
> Sorry about that. Here is the question that should not include those
> weird things.
>
> I am curious how I might go about creating an applescript that allows
> the user to use a file browser to select a folder, and then dives into
> that folder processing the files and subfolders. I found this
> excellent Subroutine in the "AppleScript: Essential Subroutines" page
> in the Apple site:
>
> http://www.apple.com/applescript/guidebook/sbrt/pgs/sbrt.09.htm
>
> This piece of code does exactly what I want, except it requires files
> and folders to be dropped on it because it is a droplet. How might I
> adapt this to make it so the user can set the folder to start with
> instead of dropping it on the script?
>
> FYI: I have tried adding:
>
> set this_folder to (choose folder with prompt "Pick the folder
> containing the files to process:") as string
> tell application "System Events"
> set these_items to every file of folder this_folder
> end tell
>
> But I get a: NSCannotCreateScriptCommandError when I try to run the
> script. (When I added the above to the script, I removed the "on open
> these_items" and "end open".
>
> thanks
>
> Aaron
>
> -- the list of file types which will be processed
> -- eg: {"PICT", "JPEG", "TIFF", "GIFf"}
> property type_list : {}
> -- since file types are optional in Mac OS X, -- check the name
> extension if there is no file type
> -- NOTE: do not use periods (.) with the items in the name extensions
> list
> -- eg: {"txt", "text", "jpg", "jpeg"}, NOT: {".txt", ".text", ".jpg",
> ".jpeg"}
> property extension_list : {}
>
> -- This droplet processes both files or folders of files dropped onto
> the applet
> on open these_items
> repeat with i from 1 to the count of these_items
> set this_item to (item i of these_items)
> set the item_info to info for this_item
> if folder of the item_info is true then
> process_folder(this_item)
> else if (alias of the item_info is false) and ¬
> ((the file type of the item_info is in the type_list) or ¬
> the name extension of the item_info is in the extension_list) then
> process_item(this_item)
> end if
> end repeat
> end open
>
> -- this sub-routine processes folders
> on process_folder(this_folder)
> set these_items to list folder this_folder without invisibles
> repeat with i from 1 to the count of these_items
> set this_item to alias ((this_folder as text) & (item i of these_items))
> set the item_info to info for this_item
> if folder of the item_info is true then
> process_folder(this_item)
> else if (alias of the item_info is false) and ¬
> ((the file type of the item_info is in the type_list) or ¬
> the name extension of the item_info is in the extension_list) then
> process_item(this_item)
> end if
> end repeat
> end process_folder
>
> -- this sub-routine processes files
> on process_item(this_item)
> -- NOTE that the variable this_item is a file reference in alias format
> -- FILE PROCESSING STATEMENTS GOES HERE
> end process_item
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Applescript-users mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
> nk.net
>
> This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Applescript-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden