This article was written by Daniel Spiewak, a great software developer and friend of the How-To Geek.
Windows Vista has built-in handling for zip files – you can create, extract, or even browse right down into them as if they were a folder. But if you have very big zip files sitting on your hard drive, bad things can happen unless you disable the zip handler.
How We Figured It Out
Just today, I was trying to restore some of my files from a previous backup. I grabbed the enormous zip file off my network drive and saved it onto the desktop. From there, a little bit of WinZip magic grabbed me the one, 25 MB directory I really wanted out of the whole 11 GB zip file. I knew I might want to restore more files later though, so I left the file on my desktop (even transferring over gigabit, 11 GB is still 11 GB).
When I finally got back to my host desktop later that evening, I found to my utter shock that things weren’t working properly. For example, I opened up the file explorer and tried to expand a folder in the tree pane on the left-hand side. Instead of nicely expanding, showing the sub-folders, it just started spinning its wheels. When I came back to it ten minutes later, it was still chugging away.
I killed the explorer.exe process, restarted explorer and went on with my workflow. At least, until WinZip started having issues. I hit the “Extract” button on a reasonable sized archive (150 MB) and the app froze. Just like explorer, it was eating my full cpu and doing absolutely nothing with it.
Recognizing I was out of my league, I fired up a conversation with “The Geek” and we started troubleshooting. An hour and a half later, after pouring through mountains of log files, downloading tools I didn’t even know existed, and wading through pages of output from SysInternals “procmon”, we finally found the problem.
It seems that Windows Vista file explorer (by default) attempts to recurse into any zip archives in a direct subdirectory, allowing users to view the contents of the zip file directly in the sidebar. Windows XP had the same “feature”, but it waited to enter the zip file until you actually expanded the node in the sidebar. In principle, Vista’s method is a good idea. XP always suffered from long delays whenever you expanded a zip file, particularly over a network connection. Grabbing a file list in the background seems like a good idea, until you take into account extremely large archives.
By trying to recurse into that 11 GB zip file sitting on my desktop, Vista pretty much started a processor-intensive task that it had no chance of completing in a reasonable timeframe. Thus, killing performance across the board with no tangible return.
Disabling Zip Handling
The obvious solution to this problem is to just turn off Windows’s built-in zip file handling, since I’m using WinZip anyway. The quickest way to do this is to use the excellent ShellExView application to disable the explorer shell extension. (you don’t have to install it, just in case you’re leery about that sort of thing)
Open up ShellEx in Administrator mode by right-clicking the file and choosing “Run as Administrator”. Select all of the “Compressed” items, right-click and select “Disable Selected Items”.
Now that the extension is taken care of, you can either logout, or you can be a bit smarter about things and just restart the “explorer.exe” process. To do this, open up Task Manager (right-click on the task bar and select “Task Manager”, or use that good ol’ three fingered Vulcan nerve pinch, Ctrl+Alt+Delete) and find the “explorer.exe” process. There probably will be more than one process in the list named “explorer.exe”, so be sure to sort by CPU and select the one farthest toward the top.
Once you’ve selected the explorer, click the “End Process” and confirm in the ensuing dialog. The taskbar will disappear, along with all of your file explorer windows.
Now select “New Task (Run…)” from the File menu. In the “Open:” text box, enter “explorer” and hit OK. After a moment, the taskbar should reappear and everything should be hunky-dory. After this, you shouldn’t have any more problems with large zip files locking up the system.
When not writing articles for How-To Geek, Mr Linux is coding in Java, Ruby, Bash, SQL and anything else which comes to mind. Mr Linux unfortunately cannot link to his blog. However, when the time is right he will use it as the means to control all thought and opinion.
- Published 10/29/07