When copying hundreds of small files/folders on Windows, the calculating phase of Windows often takes a really long time before anything starts actually being copied. Is there a setting to tell Windows to start copying right away and/or skip the whole pre-calculation phase?
Don't use Explorer.
Whether that means using a 3rd party file manager, a copy handler, or the command line is up to you.
A copy handler is a shell extension that intercepts any attempts to copy/move files and implements the operations itself. Normally these copy handlers are made to implement features that Explorer doesn't have, like queuing up multiple operations, different overwriting semantics or synchronization, speed throttling, etc. Some tools you can look at include FastCopy, TeraCopy, SuperCopier, and the imaginatively named Copy Handler.
Personally, I use FastCopy because it maintains the semantics of Explorer's copying the best. For example, the last time I tried TeraCopy to update a file with multiple hardlinks, it didn't do the same thing Explorer did.
robocopy is the best tool for large copies of tiny files.
There are two phases in the calculation of remaining time of Windows Vista/7’s file-operation dialog. There is an initial phase in which the files and folders to be copied or moved are enumerated, and a second phase in which the remaining time is estimated. The first phase does indeed happen before any file operations are actually performed, but the second one happens while the files are being copied/moved and constantly updated as it progresses (thus the remaining time may go up or down).
If your issue is with the second part, then there is no need to worry. The Time remaining line will be updated once it has finished calculating, but the files are already being moved/copied. (In fact, it must copy or move some files so that it can gauge the average read/write speed for use in the estimate calculation; merely knowing the number of files/folders is not sufficient).
If your problem is with the first part, then as others have mentioned, you could use a third-party tool to just copy/move files and folders right away, but be aware that there are some advantages to using the built-in method (ie, pre-enumeration) instead of doing it blindly like how it was done in previous versions of Windows. By knowing the status of the files and folders (eg file/dir-names, attributes, sizes, etc.), Windows is able to provide you with options for handling conflicts and hidden/system files. If it does not first make a complete list of files and folders, it cannot ask you about merging or overwriting/renaming objects. (Technically, it can, but by building a list first, it makes the process faster and easier to manage, especially if you click the always/do for all box.) Like some have said here, even third-party tools usually build a list.
TLDR: Use something like OneDrive as a conduit.
As infuriating as this is (after all, File Explorer under Windows 10 in 2019 should just work, whether locally, across a network, between internal and external devices, etc.--shame on Microsoft!), another idea is to use OneDrive (or other similar cloud-based repo) as the conduit through you make small file copies and moves. Here's the workflow:
- Copy/move the files in question to OneDrive on the source computer.
- Copy the files from OneDrive on the target computer.
- Optionally delete the files in question from OneDriver when you're done.
Of course there will be small variations to the above workflow depending on your requirements.