MyDefrag (formerly JKDefrag) is a disk defragmenter and optimizer for Windows 2000/2003/XP/Vista/2008/X64. Completely automatic and very easy to use, fast, low overhead, with several optimization strategies, and can handle floppies, USB disks, memory sticks, and anything else that looks like a disk to Windows.

Included are a Windows version, a commandline version (for scheduling by the task scheduler or for use from administrator scripts), a screensaver version, a DLL library (for use from programming languages), versions for Windows X64, and the complete sources.

Why use this defragger instead of the standard Windows defragger?

Much faster.

Totally automatic, extremely easy to use.

Optimized for daily use.

Disk optimization, several strategies.

Directories are moved to the beginning of the disk.

Reclaims MFT reserved space after disk-full.

Maintains free spaces for temporary files.

Can defragment very full harddisks.

Can defragment very large files.

Can defragment individual directories and files.

Can be run automatically with the Windows Scheduler.

Can be used from the commandline.

Can be used as a screen saver.

Can be run from cdrom or memory stick.

Sources available, can be customized.

JKDefrag was open source, but from version 4, when it changed its name to MyDefrag, it is closed source.

* Changes:- Added a check to MoveToEndOfDisk to exit more quickly if the program is stopped prematurely.- Fixed an installation bug that causes an "unable to execute file" error for the MyDefragScreenSaver.scr file.- Changed the MoveToEndOfDisk fileaction so it will skip a file faster if there is no gap large enough above the file.- Changed the MoveToEndOfDisk fileaction so it will stop faster when MyDefrag is stopped by the user.- Fixed a bug that limited the value of constant numbers in a script to 2147483647.- The ZoneBegin will no longer be automatically moved by a zone that contains a MoveToEndOfDisk fileaction.- Removed the automatic disk filters from most of the default scripts. For example, the script for flash memory disks will now run for all the selected disks, and not only for removable disks.- Fixed a problem where enlarging a gap for FastFill would be extremely slow if the file to be moved away was a NTFS compressed file.- Fixed a bug in MaxRunTime statement that would cause it to always use zero as maximum runtime.- Fixed a bug that could cause the subroutine that enlarges gaps for FastFill(WithShuffling) to move items that were already processed (placed in a previous zone).- Fixed a bug in the grammar that prevented the WhenFinished(Shutdown) setting from accepting the sub-options.- Fixed 2 bugs in string variables.- Changed PreventScreenSaving() into SetScreenSaver.- Changed PreventPowerSaving() into SetScreenPowerSaver.- Changed the subroutine that vacates the NTFS reserved area, Previously it would not count NTFS reserved area free space that was already there, resulting in unnecessary data movement.- Fixed a bug in NTFS scanner so it will now load a minimum of 1 sector when loading the first record of the MFT. On ultra-big harddisks the size of an MFT record (1 kilobyte) can be smaller than the number of bytes per sector.- The ImportListFromProgramHints fileboolean is now oompatibel with Windows XP.