File

The built-in file class is AppleScript’s way of letting you refer to a file or folder on disk. The literal form is an object string specifier using a pathname string:

file "xxx:Users:mattneub:"

AppleScript pathname strings are Macintosh-type paths, where you start with a disk name, and the delimiter between the disk name, folder names, and filename is a colon. A pathname ending in a colon is a folder or a disk. A partial pathname, one whose first element is not a disk, is taken to start inside the “current directory”; but the interpretation of this notion is unreliable, and partial pathnames should be avoided.

Alternatively, you can specify a file using a Unix-type (POSIX-type) path, where the delimiters are slashes and an initial slash means the top level of the startup disk. To do so, you must ask for a posix file instead of a file. AppleScript presents this, on decompilation or as a value, as a file specifier with the delimiters changed to colons. So, for example, if I write this:

posix file "/Users/mattneub/"

AppleScript changes it to this:

file "xxx:Users:mattneub:"

That looks like an ordinary file object, but behind the scenes it isn’t; it’s a different class, a file URL (class 'furl'). This class pops up in various contexts, lurking behind the file class. For example, the choose file name scripting addition is documented as returning a file object, and appears to do so, but in reality it’s a file URL.

Just to confuse matters still further, some dictionaries mention a ...

Get AppleScript: The Definitive Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.