In Windows XP, it seemed like the estimated transfer time of files in a folder, when copying that folder from one place to another, was estimated purely based on the sum of the file sizes and the current transfer speed. It also seemed to have a preference for transferring the larger files first.
In a common scenario, for instance the transfer of pictures and movies from my digital camera to my harddrive, I would transfer something like 5 large videos and about 100 pictures. Explorer in Windows XP would then copy the large files first, which were the movies, and check the transfer speed. Say it was something like 3MB/sec. It would then assume that this transfer speed was constant and calculate the remaining time based on that:
5 movies a 200MB = 1GB 100 pictures a 3MB = 300MB Total size = 1.3GB Transfer speed: 3MB/sec Time required: 1300MB/(3MB/sec) = 433 sec = 7.2 minutes
This, of course, isn’t true, because the overhead of closing a file stream and opening a new one each time a new file is created is a lot larger when the files are smaller (the pictures compared to the movies). In fact, the estimation above is increasingly further away from the actual time required the smaller the small files in the bulk of files to be transferred.
This would lead to Windows XP’s progress bar progressing at a steady speed while copying the movies and then slowing to a grind when the file copying process encountered the small files at the end of the list of files to be transferred. Still, the estimated time was, in most cases, at least within reason.
Vista, however, seems to take a different approach. Where XP assumed the time required to copy each MB of data was constant, Vista seems to assume the time required to copy each _file_ is constant, which is horribly, HORRIBLY wrong.
In the example picture below, I’m copying 68,5 GB of files, in 6376 files. Again, Windows (Vista, this time) starts transferring the large files first. Then, having transferred more than half the data, but only a fraction of the total number of files, it assumes the remaining 5668 files are each going to take just as long to transfer as whatever file it was previously working on, resulting in an estimate of 41423 days and 22 hours remaining, roughly 113 years.
Microsoft, this is NOT an improvement.
Update: xkcd made a comic about this 🙂