CompactGUI use Windows' Compact tool with a GUI
Compact is a handy tool that ships with Windows that you may use to compress files or directories on NTFS partitions.
The difference to compressing files or folders using archive software like 7-Zip, WinRAR or Bandizip is that files remain accessible as they are. Windows decompresses then on demand.
While you may notice a performance dip on old systems with weak processors, there is little in terms of performance loss when you work with compressed folders and files on machines with modern CPUs.
You find an overview of the compact command on Microsoft's Technet website.
CompactGUI is a graphical user interface version of the compact command. The core difference between compact on the command line and CompactGUI, besides the obvious, is that CompactGUI supports compressing folders only. If you need to compress individual files, you cannot use the program.
The application itself can be run without installation. The program does require the Microsoft .NET Framework 4.7 however so keep that in mind when running it.Â The program is designed for Windows 10, and recent versions of the operating system come with that .NET Framework version.
The interface of CompactGUI is divided into three parts:
- Select the root folder that you want to compress.
- Select the compression method (fast, better, best and most compact).
- Select additional arguments: include subfolders, include hidden and system files, force compress, mark folder to have future files compressed automatically as well.
The program will compress the root folder and all files in subfolders automatically using the "better compression" option.
You can switch that to best or most compact to recover more space, or to fastest to speed up the operation. The arguments that you may enable are self-explanatory for the most part. Note that the last option was not available in the test version on a Windows 10 Pro device.
What kind of gains can you expect from compacting folders and files within? This depends largely on the type of files. The developer compressed the Adobe Photoshop folder and cut its size in half by doing so. He compressed the Portal 2 game folder, and managed to reduce the size by 4 Gigabytes to 7.88 Gigabytes.
The developer of the program published a list of games and programs on the GitHub project website that highlight the savings when using compact.
The size reduction is less impressive for files that are heavily compressed already. You may not see much of a difference when you try to compress archives for instance or most media formats.
Now Read: Free up Windows 10 disk space with Compact OS
I am unfamiliar with the compression literature. But having a 256GB ssd, I would like to start implementing it.
Can this be used safely on all files, since you mention games (which take up a lot of space; e.g., Doom)?
I always saw that you can compress an entire drive, including the OS one. Is this recommended on newer machines (something with an i3-i7)?
Any useful guides would be nice to have.
This can be used safely on all folders, yes – I’ve intentionally set up the program so that you can’t compress entire drives or anything in the C:/Windows folder. If you try to compress folders that you don’t have access rights to, it will also throw a warning – however this can be bypassed for some situations by running the program in Administrator mode.
If you want to compress a whole drive or something in the C:/Windows folder, you’ll have to use the command line, but for anything else, go right ahead.
I’ve tested this on programs and games on an old i3 370M from 2010, and noticed no performance changes at the Xpress4K and Xpress8K options, and only slightly increased CPU usage with the Xpress16K option. So if your CPU is newer than 2010, you should be golden.
This uses the Windows’ built-in compression. I was unaware it has differemt compression levels. This makes me wonder which is the default level when you do it from Explorer.
The default level when you do it from explorer uses none of these options, but rather uses LZNT1.
The versions used in this program are new to Windows 10, and are more efficient and multi-threaded while the default compression in Windows is single-threaded (both during compression and when the compressed items need to be decompressed on the fly).
The only downside to the new methods is that it can’t capture and automatically compress new files added to the folder, while the default Windows one can. I do plan to add this feature into the program in future, which will first apply the Xpress compression to the folder contents, then tell Windows to apply LZNT1 to the rest of the folder, which won’t change any existing files, but allow new files to be compressed as they’re added as well.
Thanks for explanation.
What? After 20 years of using NTFS and Windows NT, I just now learn that it has varying levels of compression? Is there any documentation on this or completely undocumented?
Displays or alters the compression of files on NTFS partitions.
COMPACT [/C | /U] [/S[:dir]] [/A] [/I] [/F] [/Q] [/EXE[:algorithm]]
[/CompactOs[:option] [/WinDir:dir]] [filename […]]
/C Compresses the specified files. Directories will be marked
so that files added afterward will be compressed unless /EXE
/U Uncompresses the specified files. Directories will be marked
so that files added afterward will not be compressed. If
/EXE is specified, only files compressed as executables will
be uncompressed; if this is omitted, only NTFS compressed
files will be uncompressed.
/S Performs the specified operation on files in the given
directory and all subdirectories. Default “dir” is the
/A Displays files with the hidden or system attributes. These
files are omitted by default.
/I Continues performing the specified operation even after errors
have occurred. By default, COMPACT stops when an error is
/F Forces the compress operation on all specified files, even
those which are already compressed. Already-compressed files
are skipped by default.
/Q Reports only the most essential information.
/EXE Use compression optimized for executable files which are read
frequently and not modified. Supported algorithms are:
XPRESS4K (fastest) (default)
LZX (most compact)
/CompactOs Set or query the system’s compression state. Supported options are:
query – Query the system’s Compact state.
always – Compress all OS binaries and set the system state to Compact
which remains unless administrator changes it.
never – Uncompress all OS binaries and set the system state to non
Compact which remains unless administrator changes it.
/WinDir Used with /CompactOs:query, when querying the offline OS. Specifies
the directory where Windows is installed.
filename Specifies a pattern, file, or directory.
Ah so it’s something new and useful they actually added to Windows 10! LOL. Must be the first useful feature for me.
Selection of the compression algorithm is only available in Windows 10.
Hi Martin, I’m the author of the program and would like to clarify a few things:
1. The program only works in Windows 10, since the command line features are not present in earlier versions.
2. You need .NET 4.7, not 4.0 – 4.7 is included by default in the Creator’s Update so this shouldn’t be an issue for most.
3. The last option box is disabled intentionally because I haven’t actually added the feature in yet :)
Thank you, I have edited the review to reflect that.
Hi, I really like the idea, but I have a concern, don’t this reduce ssd lifes? By read and rewrite all the time?
Thx for the attention!
How do you get Smartscreen to let you run it?
Here you go: https://www.ghacks.net/2012/11/03/turn-off-windows-protected-your-pc-windows-smartscreen/
How do you uncompress? Why is there no uncompress button?
Wow… can’t believe it…
took 4 days… but worth it.
I receive a .net runtime error when trying to run the better compression. It seemed to be working when I left it overnight but had failed when I checked it this morning. Now the software just crashes as soon as the compression begins. Any help would be appreciated:
Faulting application name: CompactGUI.exe, version: 126.96.36.199, time stamp: 0x59ec9ee9
Faulting module name: KERNELBASE.dll, version: 10.0.15063.674, time stamp: 0x6d16dd24
Exception code: 0xe0434352
Fault offset: 0x000eb872
Faulting process ID: 0x4978
Faulting application start time: 0x01d34bd6b477bc60
Faulting application path: C:\Users\KVNSM\Downloads\CompactGUI.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report ID: 92c3ca02-d887-4369-beaa-b666130c4b9d
Faulting package full name:
Faulting package-relative application ID:
will the folders/files compressed by compact gui retain its size if transferred in a different os / harddrive/ssd?
will it affect already compressed files/folders?