If you’ve noticed your computer getting slower over time you might need to defragment the files and folders on your hard drive. From Windows XP forward a basic defragmenter was included, but it was very poor. Microsoft did include a Windows defragmentation API that could be hooked into to provide better defragmentation.
The reason you might want to defragment your hard drive using something other than the included software would be to defrag files 64 MB and smaller, which are ordinarily ignored, but can still impact overall performance.

One program that hooks into the defrag API is called Power Defragmenter. The Microsoft Sysinternals Contig core, or defrag API, is called simply Contig. Power Degragmenter is a GUI for Contig, with which you can select files and folders to degragment. The software is not yet automated.
The author warns not to use Power Defragmenter on USB flash drives, or SSD (solid state) drive, because they consist of a type of memory where fragmentation does not occur, and trying to defragment those drives can ruin them.
Click here to download Power Defragmenter, and here to view the home page.
The core program from Microsoft that Power Defragmenter uses is called Contig. You can run Contig from the command line without installing Power Defragmenter. Be sure to run Contig from the command line as "Run as administrator," or it will fail to run.
Click here to download Contig.
Here’s some information on Contig from the program’s page:
Introduction
There are a number of NT disk defraggers on the market, including Winternals Defrag Manager. These tools are useful for performing a general defragmentation of disks, but while most files are defragmented on drives processed by these utilities, some files may not be. In addition, it is difficult to ensure that particular files that are frequently used are defragmented – they may remain fragmented for reasons that are specific to the defragmentation algorithms used by the defragging product that has been applied. Finally, even if all files have been defragmented, subsequent changes to critical files could cause them to become fragmented. Only by running an entire defrag operation can one hope that they might be defragmented again.
Contig is a single-file defragmenter that attempts to make files contiguous on disk. Its perfect for quickly optimizing files that are continuously becoming fragmented, or that you want to ensure are in as few fragments as possible.
Using Contig
Contig can be used to defrag an existing file, or to create a new file of a specified size and name, optimizing its placement on disk. Contig uses standard Windows defragmentation APIs so it won’t cause disk corruption, even if you terminate it while its running.
To make an existing file contiguous use Contig as follows:
Usage: contig [-v] [-a] [-q] [-s] [filename]
-v Use the -v switch to have Contig print out information about the file defrag operations that are performed.-a If you want to simply see how fragmented a file or files have become, use the -a switch to have Contig analyze fragmentation.-q The -q switch, which over-rides the -v switch, makes Contig run in "quiet" mode, where the only thing it prints during a defrag run is summary information.-s Use the -s switch to perform a recursive processing of subdirectories when you specify a filename with wildcards.
For instance, to defragment all DLLs under c:’winnt you could enter "contig -s c:’winnt’*.dll".
To make a new file that is defragmented upon creation, use Contig like this:
Usage: contig [-v] [-n filename length]
How it Works
Contig uses the native Windows NT defragmentation support that was introduced with NT 4.0 (see my documentation of the defrag APIs for more information). It first scans the disk collecting the locations and sizes of free areas. Then it determines where the file in question is located. Next, Contig decides whether the file can be optimized, based on free areas and the number of fragments the file currently consists of. If the file can be optimized, it is moved into the free spaces of the disk.