Displaying the Free Space of Each Disk

Like other Mac users, I have a bunch of different volumes, which the Finder treats as separate disks, on my desktop. It is nice to be able to monitor how much space each one of these disks has left, since each of them inevitably fills up with files and new apps. The Finder provides some simple tools to display this data to the user. These include the disk object, which has a free space property. This property returns the amount of space that is left on the disk as integer bytes. So if disk “MyDisk” only had 1024 bytes left on it, then:

free space of disk "MyDisk"

would return 1024. You would have to enclose the latter code fragment in a tell statement that targets the Finder, because the Finder application knows about disk objects and free space properties. This script, which I call “GetFreeSpace,” gets a list of all the disks and stores the list in a dskList variable. Since the Finder application class has disk elements, you can get a list of all disks simply by sending the disks command to the Finder. This script gets each disk’s free space in megabytes with the following code phrase:

((d's free space) / 1024 / 1024)

It adds this information to a mesg string variable that is finally displayed to the user when all of the free space and total space is computed. The result is a dialog window that looks like Figure 14-4.

GetFreeSpace script’s dialog window
Figure 14-4. GetFreeSpace script’s ...

Get AppleScript in a Nutshell 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.