What does it do?

Like similar projects, MDirStat displays disk usage using treemaps. Each file is assigned an area in a drawing area, which allows you to quickly recognize large files.


Why another project?

WinDirStat has its own peculiarities that make it quite difficult to use in some cases. The decisive factor for me was the rather mediocre recognition of mount points and junctions, which meant that it sometimes calculate wildly wrong results. There is a fork that does this correctly (altWinDirStat), but it has a few other quirks. Oh, and by the way, MDirStat is noticeably faster without me having done anything for it 😉


The displayed file size is always the real size that Windows reports as “size on disk” and can therefore deviate from the expected value in both directions. The tree and treemap views are synchronized: selecting an object in one also selects the object in the other. Both offer the system context menu for the respective object. With “File->Update Selection” the selected subtree can be updated, “Update All” updates everything, “Open” opens the target selection dialog. In the tree view, compressed files and sparse files are highlighted in blue. The colors are derived from the file type so that files with the same extension are given the same color. If you open drive root directory (or a mount point), two further entries are added: Free Space (free space as reported by Windows) and Unknown (difference between everything measurable and what should be occupied according to Total Size-Free). Very large Unknown blocks can be occupied by shadow copies, for example, or to a lesser extent by fragmentation (as directory entries cannot be measured cleanly). The treemap style and display can be configured in the options.


MDirStat does not need to be installed. If a file ExeName.portable exists in the program directory, the configuration file is stored in the program directory. Otherwise, a folder in the application data is used.


Source code

The source code is available in the project’s Git repository. It is released under the Apache 2.0 license. The whole thing is built with Lazarus 2.0 and FPC 3.3 (snapshot versions), but should also run with 1.4 and 3.0 without any problems. The version of VirtualTreeView delivered with Lazarus as well as bitSpaceUtils and bitSpaceControls are used.


MDirStat was previously released in the EntwicklerEcke.