Over the time that I have been writing AppleScripts, I have found that one of the most difficult, if not frustrating, tasks of writing scripts is referencing files by path so that they can be accessed by other applications.
As you’ll see below, creating a reference that is understandable by the Finder is fairly simple (not always though). These are common alias references, most of which are understood by pre-OSX versions of the system as well as OSX. In the following section we will not only take a look at how to get ‘regular’ file paths, but also how to get POSIX paths (like UNIX) that are sometimes useful in deriving a path in a format that you may need. First, a number of examples of regular, alias paths:
tell application "Finder" to get folder "FileMaker Databases" of desktop
–> result: folder “FileMaker Databases” of folder “Desktop” of folder “administrator” of folder “Users” of startup disk of application “Finder”
tell application "Finder"
set targetFolder to (get folder "FileMaker Databases" of desktop as alias)
open targetFolder
end tell
–> result: alias “Macintosh HD:Users:administrator:Desktop:FileMaker Databases:”
set monthReportDoc to "Monthly Reports " & "2008.fp5"
tell application "Finder" to set targetDoc to (get file monthReportDoc of folder "FileMaker Databases" of desktop as alias)
–> result: alias “Macintosh HD:Users:administrator:Desktop:FileMaker Databases:Monthly Reports 2008.fp5″
This script gets the path to a folder on the desktop containing FileMaker Pro databases and concatenates it together with a file name and sends it to FileMaker Pro to open it:
set monthReportDoc to "Monthly Reports " & "2008.fp5"
tell application "Finder" to set targetDoc to (get file monthReportDoc of folder "FileMaker Databases" of desktop)
–> result: document file “Monthly Reports 2008.fp5″ of folder “FileMaker Databases” of folder “Desktop” of folder “administrator” of folder “Users” of startup disk of application “Finder”
tell application "FileMaker Pro"
activate
open targetDoc
end tell
Sometimes you must specify the POSIX path. The only real difference is that the regular Mac OS path and the POSIX version differ in that the POSIX (UNIX) path separates the heirarchy (deliminates) with the forward slash ‘/’, omitting the actual name of the HD, while the regular Mac path is delimited by ‘:’ and includes the name of the hard Disk. Examine these two statements:
POSIX: "/Users/administrator/Desktop/FileMaker Databases/"
Mac Path: "Macintosh HD:Users:administrator:Desktop: FileMaker Databases:"
Follow this to go from an Alias to a POSIX path:
First, the path to the folder “FileMaker Databases” :
tell application "Finder" to get folder "FileMaker Databases" of desktop
–> result: folder “FileMaker Databases” of folder “Desktop” of folder “administrator” of folder “Users” of startup disk of application “Finder”
Then, the alias path to the folder:
tell application "Finder" to get folder "FileMaker Databases" of desktop as alias
–> result: alias “Macintosh HD:Users:administrator:Desktop:FileMaker Databases:”
tell application "Finder" to get the POSIX path of (folder "FileMaker Databases" of desktop as alias)
(folder “FileMaker Databases” of desktop as alias) This, since it is enclosed in parenthesis, will be evaluated first. Then the POSIX path of that is derived.
–> result: “/Users/administrator/Desktop/FileMaker Databases/”
Then going from a POSIX to an Alias. Using the previous example:
"/Users/administrator/Desktop/FileMaker Databases/" as POSIX file
--> result: file "Macintosh HD:Users:administrator:Desktop:FileMaker Databases:"
Since this is executed from left to right:
"/Users/administrator/Desktop/FileMaker Databases/" as POSIX file as alias
–> result: alias “Macintosh HD:Users:administrator:Desktop:FileMaker Databases:”
Finally, if you’re not exhausted by now, look at these comparisons, which give the same result:
folder "Macintosh HD:Users:administrator:Desktop:FileMaker Databases:"
item "Macintosh HD:Users:administrator:Desktop:FileMaker Databases:"
As do these:
folder "FileMaker Databases" of folder "Desktop" of folder "administrator" of folder "Users" of startup disk of application "Finder"
item "FileMaker Databases" of folder "Desktop" of folder "administrator" of folder "Users" of startup disk of application "Finder"
A little precursor for what is to come:
tell application "Finder" to get the URL of home
–”file://localhost/Users/administrator/”
–you can use file://localhost/Users/administrator/ to show your HD in Firefox.
Contact me if you have any questions or comments at: hyperscripter@gmail.com or http://twitter.com/hyperscripter or to subscribe, click the By Email link at the top of the page.


































Recent Comments