Understanding the Calculation Bottleneck
The error message "Items remaining: 0" typically appears during the final phase of a file transfer operation. At this stage, Windows Explorer attempts to update the total count of items processed and calculate the final speed based on the entire dataset. When dealing with folders containing tens of thousands of small files, such as source code repositories, game assets, or large media libraries, the shell must iterate through every single entry to determine its size, attributes, and timestamps.
This process consumes significant CPU cycles and memory resources dedicated to the explorer.exe process. The user interface thread becomes blocked while these calculations occur, leading to the appearance that the copy has stalled. In many cases, the data is actually being written to the disk correctly, but the progress dialog fails to refresh because it is waiting for the metadata enumeration to complete. This issue is exacerbated on network drives or external USB devices where latency adds to the processing time.
Using Robocopy for Reliable Transfers
The most effective solution for bypassing this freeze is to use Robocopy (Robust File Copy), a command-line utility included in all modern versions of Windows. Unlike Windows Explorer, Robocopy does not rely on the graphical shell for progress updates and handles large file sets much more efficiently. It also offers superior error recovery and logging capabilities.
robocopy "C:\Source\Folder" "D:\Destination\Folder" /E /MT:32 /R:1 /W:1
In this command, the /E flag copies all subdirectories, including empty ones. The /MT:32 option enables multi-threaded copying with 32 threads, which significantly speeds up transfers by utilizing multiple CPU cores simultaneously. The /R:1 and /W:1 flags limit retries to one attempt with a one-second wait, preventing the tool from hanging indefinitely on locked files. For detailed metrics on how to interpret the output, you may refer to our guide on How to Measure Robocopy's Copy Speed and Files Skipped/Copied?.
To monitor the progress, open a new Command Prompt window and run the same command without the destination arguments if you need to check status, though typically the console window itself displays the real-time log. This method ensures that your data is copied accurately even if the Explorer interface would have otherwise become unresponsive.
Adjusting Folder Options for Better Performance
If you must use Windows Explorer for routine tasks, you can optimize its performance by disabling features that trigger excessive metadata checks. One common culprit is the automatic calculation of file counts for folder contents, which slows down navigation and copying operations.
- Open File Explorer and click on the View tab in the ribbon menu.
- Select Options from the far right side to open the Folder Options dialog.
- Navigate to the View tab within the dialog box.
- Uncheck the box labeled Automatically calculate free space needed for tasks. Note that this setting varies by Windows version; in some builds, look for Show sync provider notifications and disable it as well.
- Additionally, ensure that Display full path in title bar is checked if you find it helpful for debugging path issues, though this is cosmetic.
- Click Apply and then OK to save the changes.
Disabling automatic free-space calculations prevents Windows from constantly querying the drive for available bytes during operations, which can reduce overhead. Another useful tweak is to turn off the indexing of certain folders if they are not frequently searched, reducing the background activity that compet with the copy process. For users experiencing persistent instability with the shell, checking for conflicting extensions or restart loops might be necessary, as discussed in our article about Explorer Keeping Restart: Taskbar.View.dll Issue.
Preventing Future Stalls with Proper Management
Avoid copying entire root directories of large projects directly. Instead, navigate into the specific subfolders you need and copy those individually. This reduces the initial enumeration load on the shell. If you are moving data between different filesystems, such as NTFS to FAT32, be aware of file size limits and permission differences that can cause silent failures or retries.
Regularly updating Windows ensures you have the latest patches for the Shell experience, which occasionally includes fixes for performance regressions in file management. However, for bulk operations involving more than a few thousand files, relying on third-party tools like TeraCopy or command-line utilities remains the professional standard for reliability.
Frequently Asked Questions
Why does my computer freeze completely, not just the window?
If the entire system hangs, it is likely due to a driver conflict or severe disk contention rather than just Explorer lag. Check your Device Manager for outdated storage controllers and ensure your antivirus software is not scanning every individual file as it is written to the destination.
Can I use PowerShell instead of Robocopy?
Yes, PowerShell's Copy-Item cmdlet can handle large files, but it lacks the built-in multi-threading and robust retry logic of Robocopy. For simple moves, it works fine, but for complex directory structures, Robocopy is generally faster and more resilient to errors.
Does defragmenting the hard drive fix this issue?
Defragmentation improves sequential read/write speeds on mechanical hard drives but does not address the metadata calculation bottleneck in Explorer. It is unlikely to resolve the "Items remaining: 0" stall, especially on SSDs where defragmentation is unnecessary and potentially harmful.
What should I do if the copy finishes but files are missing?
If the progress bar disappears but files are absent, the operation may have failed silently due to permission errors or disk space issues. Use Robocopy with the /L (list only) flag first to verify what will be copied, and always check the event viewer for application errors related to explorer.exe after a failed transfer.
Is it safe to force-close Explorer when it is stuck?
Force-closing explorer.exe via Task Manager will terminate the active copy operation immediately, resulting in incomplete or corrupted data at the destination. It is safer to let the process run or switch to a command-line tool for future large transfers to avoid data loss.