TweetFollow Us on Twitter

More Finder Scripting

Volume Number: 20 (2004)
Issue Number: 11
Column Tag: Programming

More Finder Scripting

by Benjamin S. Waldie

We've taken a look at some basic Finder scripting, including creating, naming, and updating folders. This month, let's expand a bit further, and begin looking at some other scriptable Finder functionality.

Manipulating Finder objects

In this article, when I refer to a Finder "item" or "object", please note that I am simply referring generically to either a file or a folder.

Opening

We have already seen how the following code can be used to open a folder using the Finder:

tell application "Finder"
	set theFolder to make new folder at desktop with properties {name:"My Folder"}
	open theFolder
end tell

You may also have the need to open a file using the Finder. To simply open a file, the AppleScript syntax is the same:

set theFile to choose file
tell application "Finder"
	open theFile
end tell

In some cases, you may want to open a file using a specific application. For example, let's say that you have a Photoshop or ImageReady droplet, or an AppleScript droplet, and you want to process one or more dropped items. You can do this with AppleScript in the Finder by making use of the using parameter along with the open command.

set theApplication to choose application as alias
set theFile to choose file
tell application "Finder"
	open theFile using theApplication
end tell

Revealing

If you simply want to locate and navigate to an item in the Finder, you can use the reveal command. This will locate the object in the Finder, open a new window if necessary, display and select the specified object.

set theFile to choose file
tell application "Finder"
	reveal theFile
end tell

Moving

Moving files and folders around is another common task involving the Finder. To move a file or folder, use the move command.

set theFile to choose file
set theDestinationFolder to choose folder with prompt "Please select a destination folder:"
tell application "Finder"
	move theFile to theDestinationFolder
end tell

By default, the move command will not automatically replace existing items in the destination location with the same name. If you want to replace existing items in any situation, then you can simply use the replacing parameter to indicate that any existing items should be replaced, if necessary. For example:

tell application "Finder"
	move theFile to theDestinationFolder replacing true
end tell

If you do not want to replace existing items, but you still want to move the item to the destination folder, then you will need to create custom code to handle the situation as you see fit. For example, if you wanted to add a unique numeric suffix to the item name, and then move it, you could use the following code:

set theFile to choose file
set theDestinationFolder to choose folder with prompt "Please select a destination folder:"
tell application "Finder"
	set theFileName to name of theFile
	set thePathToCheck to theDestinationFolder & theFileName as string
	if item thePathToCheck exists then
		set theSuffix to 1
		repeat
			if (item (thePathToCheck & theSuffix) exists) = false then exit repeat
			set theSuffix to theSuffix + 1
		end repeat
		set name of theFile to theFileName & theSuffix
	end if
	move theFile to theDestinationFolder
end tell

Duplicating

To copy an item, you need to use the duplicate command, rather than the copy command. For example:

set theFile to choose file
set theDestinationFolder to choose folder with prompt "Please select a destination folder:"
tell application "Finder"
	duplicate theFile to theDestinationFolder
end tell

As of the writing of this article, the Finder dictionary did indicate the presence of a copy command. However, this command was not yet implemented in the Mac OS X Panther (10.3.3) Finder. In addition, once functional, the copy command will be used to copy items to the clipboard, rather than to copy them from one location to another.

Duplicating is similar to moving, in that it will not automatically replace existing items with the same names. In order to replace existing items, you need to use the replacing parameter.

tell application "Finder"
	duplicate theFile to theDestinationFolder replacing true
end tell

If you do not want to replace existing items in a destination folder, but you still want to copy an item to the destination folder, then you will need to create code to handle this situation. For example:

set theFile to choose file
set theDestinationFolder to choose folder with prompt "Please select a destination folder:"
tell application "Finder"
	set theFileName to name of theFile
	set thePathToCheck to theDestinationFolder & theFileName as string
	if item thePathToCheck exists then
		set theSuffix to 1
		repeat
			if (item (thePathToCheck & theSuffix) exists) = false then exit repeat
			set theSuffix to theSuffix + 1
		end repeat
		set name of theFile to theFileName & theSuffix
	end if
	duplicate theFile to theDestinationFolder
end tell

Deleting

To delete an item, use the delete command:

set theFile to choose file
tell application "Finder"
	delete theFile
end tell

Please note that the delete command will not actually delete an item. Rather, it will move the item to the trash, where it may be retrieved until the trash has been emptied. If you want to fully delete a file, you will need to tell the Finder to empty the trash after performing the deletion. For example:

set theFile to choose file
tell application "Finder"
	delete theFile
	empty the trash
end tell

Keep in mind that by emptying the trash, you will be removing any other items residing in the trash as well.

Getting Object Info

When working with an item in the Finder, you will probably want to retrieve information about the item. You can do this by accessing the properties of the desired object. Common properties shared by both files, folders, and disks can be found under the Finder Items suite in the Finder dictionary.


Figure 1. Finder Dictionary > Finder Item Detail

Some commonly accessed properties of Finder items include the modification date, name, and size of the item. For example:

set theFile to choose file
tell application "Finder"
	set theModDate to modification date of theFile
	set theName to name of theFile
	set theSize to size of theFile
end tell

In addition to these common properties, files, folders, and disks also have additional properties specific to their particular class. For example, files have a file type and creator type property, whereas folders and disks have other properties not possessed by files. For example:

set theFile to choose file
tell application "Finder"
	set theFileType to file type of theFile
	set theCreatorType to creator type of theFile
end tell

Some developers prefer to avoid scripting the Finder when possible, and resort instead to using a scripting addition to access certain properties of files and folders. The Standard Additions scripting addition, which is installed with Mac OS X, contains a command for just this task - info for. This command may be used to retrieve a variety of properties for files and folders, such as name, modification date, size, and more. For example:

  • set theFile to choose file
  • set theFileInfo to info for theFile
  • set theName to name of theFileInfo
  • set theModDate to modification date of theFileInfo
  • set theSize to size of theFileInfo

What About System Events?

If you have done some scripting in Mac OS X before, then you may be somewhat familiar with the System Events background application. This application allows you to automate various system related activities.


Figure 2. The System Events Dictionary Window

Some of the commands in the System Events dictionary are very similar to commands found in the Finder dictionary, including the delete, move, and open commands. For these specific commands, System Events may be used instead of the Finder. However, please note that certain parameters, which are present when scripting the Finder, are not present when scripting System Events. For example, when moving an item using System Events, there is not currently a way to specify whether existing items should be overwritten. When using this command, items will never be overwritten.

set theFile to (choose file) as string
set theDestinationFolder to choose folder
tell application "System Events"
	move disk item theFile to theDestinationFolder
end tell

The System Events dictionary has expanded significantly with the last few major Mac OS X releases, and I expect it to continue to expand in the future. My guess is that more Finder-like functionality will continue to be built into System Events with every major OS release. System Events contains much more than the few commands I mentioned above, and I encourage you to explore it in greater detail in order to find out more about what System Events has to offer.

In Closing

This month's article should take you a little further down the road of Finder scripting. For some editable examples of Finder scripting, you may want to check out the example Finder scripts included with Mac OS X. These can be found in the Library > Scripts > Finder Scripts folder on your machine. In addition, Apple's AppleScript web site contains some Finder scripts, which can be triggered from the Finder's toolbar. For additional information about all of these scripts, as well as links to download the toolbar scripts, please visit http://www.apple.com/applescript/finder/.

Until next time, keep scripting!


Benjamin Waldie is president of Automated Workflows, LLC, a firm specializing in AppleScript and workflow automation consulting. In addition to his role as a consultant, Benjamin is an evangelist of AppleScript, and can frequently be seen presenting at Macintosh User Groups, Seybold Seminars, and MacWorld. For additional information about Benjamin, please visit http://www.automatedworkflows.com, or email Benjamin at applescriptguru@mac.com.applescriptguru@mac.com.

 
AAPL
$117.60
Apple Inc.
-1.03
MSFT
$47.47
Microsoft Corpora
-0.12
GOOG
$541.08
Google Inc.
+1.81

MacTech Search:
Community Search:

Software Updates via MacUpdate

RapidWeaver 6.0.3 - Create template-base...
RapidWeaver is a next-generation Web design application to help you easily create professional-looking Web sites in minutes. No knowledge of complex code is required, RapidWeaver will take care of... Read more
iPhoto Library Manager 4.1.10 - Manage m...
iPhoto Library Manager lets you organize your photos into multiple iPhoto libraries. Separate your high school and college photos from your latest summer vacation pictures. Or keep some photo... Read more
iExplorer 3.5.1.9 - View and transfer al...
iExplorer is an iPhone browser for Mac lets you view the files on your iOS device. By using a drag and drop interface, you can quickly copy files and folders between your Mac and your iPhone or... Read more
MacUpdate Desktop 6.0.3 - Discover and i...
MacUpdate Desktop 6 brings seamless 1-click installs and version updates to your Mac. With a free MacUpdate account and MacUpdate Desktop 6, Mac users can now install almost any Mac app on macupdate.... Read more
SteerMouse 4.2.2 - Powerful third-party...
SteerMouse is an advanced driver for USB and Bluetooth mice. It also supports Apple Mighty Mouse very well. SteerMouse can assign various functions to buttons that Apple's software does not allow,... Read more
iMazing 1.1 - Complete iOS device manage...
iMazing (was DiskAid) is the ultimate iOS device manager with capabilities far beyond what iTunes offers. With iMazing and your iOS device (iPhone, iPad, or iPod), you can: Copy music to and from... Read more
PopChar X 7.0 - Floating window shows av...
PopChar X helps you get the most out of your font collection. With its crystal-clear interface, PopChar X provides a frustration-free way to access any font's special characters. Expanded... Read more
Carbon Copy Cloner 4.0.3 - Easy-to-use b...
Carbon Copy Cloner backups are better than ordinary backups. Suppose the unthinkable happens while you're under deadline to finish a project: your Mac is unresponsive and all you hear is an ominous,... Read more
ForeverSave 2.1.3 - Universal auto-save...
ForeverSave auto-saves all documents you're working on while simultaneously doing backup versioning in the background. Lost data can be quickly restored at any time. Losing data, caused by... Read more
Voila 3.8.1 - Capture, annotate, organiz...
Voila is a screen-capture, recording, and annotation tool that is a full-featured replacement for Mac's screen-capture and screen-recording capabilities. It has a large and robust set of editing,... Read more

Latest Forum Discussions

See All

Screeny (Utilities)
Screeny 1.0 Device: iOS iPhone Category: Utilities Price: $.99, Version: 1.0 (iTunes) Description: Screeny is an utility app that helps you save space consumed by screenshots. It screens your camera roll and helps you to filter and... | Read more »
Tilt to Live Bundle Set to Arrive This T...
Tilt to Live Bundle Set to Arrive This Thanksgiving Posted by Ellis Spice on November 25th, 2014 [ permalink ] One Man Left has unveiled an upcoming Tilt to Live bundle, allowing players to get the series for a di | Read more »
BattleLore: Command (Entertainment)
BattleLore: Command 1.0 Device: iOS Universal Category: Entertainment Price: $9.99, Version: 1.0 (iTunes) Description: ***NOTE: Compatible with iPad 2/iPad mini, iPod touch 5 and up and iPhone 4S and up – WILL NOT RUN ON EARLIER... | Read more »
Weather Or Not Review
Weather Or Not Review By Jennifer Allen on November 25th, 2014 Our Rating: :: STYLISH WEATHER REPORTINGiPhone App - Designed for the iPhone, compatible with the iPad Check the weather quickly and conveniently with Weather or Not... | Read more »
The All-New Football Manager Handheld 20...
The All-New Football Manager Handheld 2015 is Available Now Posted by Jessica Fisher on November 25th, 2014 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Six iOS Games to Get You Ready for Thank...
Image Source: Friends Wiki At this point in the month, you or at least a few people you know are probably getting ready to scramble around (or are already scrambling around) for Thanksgiving Dinner. It’s a hectic day of precise oven utilization, but... | Read more »
Call of Duty: Heroes: Tips, Tricks, and...
Hello Heroes: What’d we think of Call of Duty‘s take on Clash of Clans? Check out our Call of Duty: Heroes review to find out! Just downloaded Call of Duty: Heroes and need some handy tips and tricks on how to get ahead of the rest? As we often do,... | Read more »
Call of Duty: Heroes Review
Call of Duty: Heroes Review By Jennifer Allen on November 25th, 2014 Our Rating: :: CLASH OF FRANCHISESUniversal App - Designed for iPhone and iPad Mix Clash of Clans with Call of Duty, and this is what you get.   | Read more »
Slider Review
Slider Review By Jordan Minor on November 25th, 2014 Our Rating: :: SLIDE TO PLAYUniversal App - Designed for iPhone and iPad Slider has all the excitement of unlocking your phone screen.   | Read more »
oh my giraffe (Games)
oh my giraffe 1.0.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0.0 (iTunes) Description: Eat fruits while being chased by lions. Cut the vines to send fruit plummeting onto the lions. Don't worry, your flexible... | Read more »

Price Scanner via MacPrices.net

Early Black Friday sale price: 15-inch 2.2GHz...
 B&H Photo has the 2014 15″ 2.2GHz Retina MacBook Pro on sale today for $1699.99. Shipping is free, and B&H charges NY sales tax only. Their price is $300 off MSRP, equalling Best Buy’s price... Read more
13-inch 2.5GHz MacBook Pro (refurbished) avai...
The Apple Store has Apple Certified Refurbished 13″ 2.5GHz MacBook Pros available for $170 off the cost of new models. Apple’s one-year warranty is standard, and shipping is free: - 13″ 2.5GHz... Read more
Early Black Friday MacBook Pro sale: 15-inch...
 Best Buy has posted early Black Friday prices on 15″ Retina MacBook Pros, with models on sale for $300 off MSRP on their online store for a limited time. Choose free local store pickup (if available... Read more
A9 Chips Already?
It’s barely more than a couple of months since Apple got the first A8 systems-on-chip into consumer hands, but rumor and news focus is already turning to the next-generation A9 SoC. Apple Daily... Read more
NewerTech Announces NuGuard KXs Impact X-Orbi...
NewerTech has announced updates to its family of Impact X-Orbing Screen Armor bringing military grade, triple layer protection to Apple’s new iPhone 6 and 6 Plus. Like all models in the NuGuard KXs... Read more
13-inch 1.4GHz MacBook Air on sale for $889,...
 B&H Photo has the 13″ 1.4GHz/128GB MacBook Air on sale for $889 including free shipping plus NY tax only. Their price is $110 off MSRP. B&H will also include free copies of Parallels Desktop... Read more
Save up to $300 on Macs and iPads with your A...
Purchase a new Mac or iPad at The Apple Store for Education and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free,... Read more
Apple refurbished Mac Pros available for up t...
The Apple Store is offering Apple Certified Refurbished Mac Pros for up to $600 off the cost of new models. An Apple one-year warranty is included with each Mac Pro, and shipping is free. The... Read more
Jumptuit Launches One-Tap Windows 8.1 iTunes...
Jumptuit has launched Windows 8.1 support for One-Tap iTunes Sync. with which Windows 8.1 users can now easily sync their iTunes libraries with Microsoft OneDrive. Jumptuit provides easy access from... Read more
Apple restocks refurbished 13-inch 2014 Retin...
The Apple Store has restocked Apple Certified Refurbished 2014 13″ 2.6GHz Retina MacBook Pros for up to $230 off the cost of new models. An Apple one-year warranty is included with each model, and... Read more

Jobs Board

*Apple* Solutions Consultant (ASC) - Apple (...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
Senior Event Manager, *Apple* Retail Market...
…This senior level position is responsible for leading and imagining the Apple Retail Team's global event strategy. Delivering an overarching brand story; in-store, Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Solutions Consultant (ASC) - Apple (...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
*Apple* Solutions Consultant (ASC) - Apple (...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.