Purple Tree is a visual disk space analyzer. Using a neatly designed treemap display it helps to instantly locate large files as well as to see how your data is organized at a glance! Purple Tree also has a built-in duplicate detection utility making it an integrated and super handy tool to keep your disks clean and organized.
Select any folder on your internal or external hard drive. Purple Tree scans all elements contained in that folder and performs duplicated files detection in the background. The analysis results are displayed as a treemap.
The app preferences allow the layout density tuning as well as other parameters. Since version 3.1.2 there are optional color schemes designed to help colorblind users.
Purple Tree automatically analyzes the scanned files in order to find duplicates. This search is performed in a background task and may last several minutes the first time you use it. You can normally use the app during this search. If you choose the duplicate visualization when the search is not finished yet, a progress dialog will appear, showing the estimated time and a live preview of highlighted duplicates. A long search process can be cancelled at any time.
Once all duplicates are analyzed and confirmed, you can do the following:
In the treemap display, the duplicated files are highlighted as well as the folders containing these duplicates. This allows you to locate the duplicates and visually estimate the amount of duplicates space. When a folder containing duplicates is selected, a rich tooltip (a popover) shows the number of duplicated files.
By clicking on the action button « Show Duplicates » in this tooltip you can open a duplicate list view to obtains more details and manage the duplicates.
The duplicate list view can be opened either using the main toolbar action or with the selection tooltip action. In the first case, all duplicates within the scanned folder will be displayed.
The purpose of the list view is to allow the selection and deletion of unwanted duplicates. The files can be selection individually by the user. Grouped selections can be performed from a single selection. Once a single duplicated file is selected, you have following options to select a group of similar duplicates:
The time needed to scan your disk space depends on two factors: the number of files and the speed of your hard drive. The file sizes do only matter for duplicate detection since hash codes have to be computed.
On modern SSD the scan process is fairly quick. On the classic hard drives, however, it can still take several minutes to complete. In order to limit the number of files to be scanned, you can exclude unnecessary folders from the process using Preferences or a contextual menu action “Exclude selected folder from future scans” directly from the graphic selection.
Example: I have all my photos managed by software that generates small preview images in a special folder. This makes dozens of thousands small files considerably slowing down the scan process. Since I have no particular interest in these files I can simply exclude that preview folder.
The “Ignore files which size is less than XXX bytes” preference setting allows you to ignore small files. This will not make the scan faster since to know that a file is small it needs to be analyzed first. However avoiding small files will help to reduce the memory used by the app and allow it to run faster once the scan is complete. Of course this will distort the statistics (number of files) and the total occupied space estimation will be lower than in reality. In most cases it will not be important since Purple Tree was designed to find big fishes! Yet, keep in mind this limitation and change this setting if needed.
Packages are special folders which internal structure is not intended to be viewed or modified directly by user. Apps, Libraries (like Photo or iMovie library) and system bundles are packages. By default Finder presents packages as files, yet it can unveil their contents if requested. Also, Purple Tree default behavior is to display packages as single files. However it’s sometimes necessary to see what’s inside packages and this can be done simply by turning off the “Hide package contents” preference.
Note that package internal files are not included in the duplicate search when package contents are hidden. In order to see duplicated files inside packages you have to turn off the preference mentioned above and to rescan folders again.
Example: if you copy your videos into the Movies folder and then import these videos in iMovie, your files will actually be copied in the iMovie.library package. Purple Tree will not consider them as duplicates if package contents are hidden.
In Purple Tree symbolic and hard links are treated as plain files. Usually symbolic links are too small to be taken into account (see file size limitation above). On the other hand, several hard links on a large file may lead to inaccurate total size estimation. However, such files will not be considered as duplicates since they are not wasting any extra disk space.
Like all common apps, Purple Tree does not have access to system protected folders that require root privileges. So if such folders, like ".DocumentRevisions-V100", take large amounts of disk space, the app will not be able to see it! This is a common limitation for apps coming from the AppStore: the apps can neither request admin password nor be launched using 'sudo' command. Sorry about that, but Apple do so for obvious security reasons.
Treemap visualization of hierarchical data was introduced in 1991 by Ben Schneiderman from the University of Maryland. Purple Tree uses a modified version of the Squarified layout algorithm introduced by Jarke J. van Wijk et al. This layout avoids high aspect ratio rectangles making comparison of two areas easier. The areas of two files of equal size should appear as equal for the same tree layer. However, the nested file drawing may alter the apparent area because of the margins, so thin margins lead to more visual accuracy.
Purple Tree is written in Objective-C language and is using the most standard features of Cocoa framework for file system access and graphics.