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.
- Fixed a bug in the Title() setting that caused it not to replace macros.
- Fixed a bug where a change in the size of the windows would not be remembered if the windows were not moved away from the top-left of the screen.
- Added a parameter to PlaceNtfsSystemFiles to set the size of the NTFS reserved area.
- Added the !ProgressPercentage! macro.
- The script chooser will no longer display volumes that are excluded with ExcludeVolumes() in the Settings.MyD file.
- Changed the syntax of the MakeGap and AddGap actions. It is now possible to place zones anywhere, they do not have to be placed one-after-another from the beginning of the disk.
- Changed the default scripts so that the MFT, some other NTFS system files, and the directories, are now placed 30% into the data on the disk.
- Fixed a bug in the screensaver that would not display the progress percentage.
- Fixed a bug in the graphics code that will properly show StatusBar(path) if StatusBar(Status) is not specified.
- Changed the vacate function so that when there are no gaps above the end of the zone, it will use the highest gap available. Before it would use the first gap available.
- Changed the default script for the screensaver into Optimize Daily. Before it was Optimize Weekly.
- Changed the default setting for the status bar of the screensaver into Full Status Bar. Before it was No Status Bar.
- The positions of the windows are now also saved when the windows are moved and not only when they are resized.
- If the Windows defragmentation API has not succesfully moved an NTFS compressed file then MyDefrag will no longer try to move the file with the alternative method, but leave the file where it is and mark it as unmovable. The alternative method is extremely slow for compressed files.
- Made a change that should increase the chance of succesfully moving files on Windows 2000 machines. Sometimes files could not be succesfully moved and they would be marked as unmovable.
- Fixed a bug that caused unnecessary work and unfilled gaps at the end of a zone for the SortBy fileactions.
- The script chooser window will now list scripts that contain a syntax error. The description of the script shows the error.
- Fixed a bug where the subroutine that determines if a file is fragmented (see the IgnoreWrapAroundFragmentation setting) would treat gaps as unmovable.
- Fixed a bug that caused the program to skip very big FAT volumes.
- If the Sortby fileactions find two files to be equal (for example SortBySize and files with equal size) then the program will now also compare the Inodes. This reduces the number of filemovements.
- The !Include PATH! macro is now evaluated before any other macros, so that macros inside the included file will be processed.