BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
It's surprising how often you find yourself copying files around on any given system. New disks replace old ones, solid-state disks eclipse spinning platters, or a network-attached drive obviates the need for a local one. Whatever the reason, at some point, you may get stuck with the unappealing job of copying gigs of data. Isn't there some file copy utility to speed up this process?
The short answer is a qualified yes. The increase in speed is usually minor, and improvements are more about not slowing down the rest of the system than about speeding up the file copy process itself.
If you're a command-line jockey, the best place to start with hastening file copying is with the utilities available in Windows itself. Two such utilities come to mind: Xcopy and RoboCopy.
Xcopy has been around since DOS 3.2 and extends the Copy command with a slew of options, some of which can be used to accelerate the copying process. Of particular interest is the /J option, which copies files using unbuffered I/O. This keeps the copy operation from using the I/O buffers that are normally used for the rest of the system's operations.
If you have a long-running copy operation that deals with lots of files, XCOPY /J can reduce some of the load imposed on the system. For even better results, you can run Xcopy with START /LOW, which runs the Windows utility in a low-priority thread.
RoboCopy, a successor to Xcopy, has many of the same features and then some. Among RoboCopy's newest features (added as of Windows 7) is the /MT switch, which allows the copy operation to be performed in multiple threads. This can sometimes speed up copying operations across a network, but you don't want to use more threads than you have CPU cores.
One thing RoboCopy doesn't have, though, is the equivalent to the /J switch. Microsoft got wise and added that feature to Windows 8 and Windows Server 2012. If you're using Windows 7 or earlier, go with Xcopy and its options; if you're on Windows 8 or higher, use RoboCopy.
All of this presumes you don't mind dealing with the command line, but what if you'd rather just have some measure of that functionality incorporated directly into Explorer? I've looked at a few different programs that enable this, and one of the best appears to be TeraCopy.
TeraCopy is designed to make file copying less onerous for the end user and less of a burden on the system. With TeraCopy, copy operations can be suspended and resumed, the target copy can be verified against the source with CRC checks, and files that fail to copy can be individually retried without having to redo the whole copy operation. Most importantly, copy operations automatically make use of unbuffered mode to minimize the effect the copy operation has on the rest of the system.
Does TeraCopy run any faster than Xcopy or RoboCopy? I tested by copying 42 GB of large video files (each around 4 GB to 5 GB) between drives, and the timings were about the same for each: nine minutes and change.
Other things being equal, TeraCopy's advantage is in its graphical user interface, but you can always fall back to using XCOPY /J if you're unable to use TeraCopy for whatever reason.
On a final note, one of the fringe benefits of an upgrade to Windows 8 is a better file-copying tool in Explorer, which allows copying operations to be paused and resumed. The Windows 8 file copy utility does a better job of resolving multi-file copy conflicts than Windows 7 did.
Windows 8 also includes a function called offloaded data transfer, which further speeds up file copying operations. But if you're not likely to upgrade to Windows 8 anytime soon, Xcopy or TeraCopy provide some ways to make the process less onerous.